1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
| import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class Essai extends JPanel implements MouseMotionListener, MouseListener
{
public static void main( String[] arg ) throws Exception
{
new Essai();
}
private BufferedImage image;
private JScrollPane pane;
private int xImg, yImg;
private int xMouse, yMouse;
public Essai() throws Exception
{
image = ImageIO.read( new File( "graph.png" ) );
xImg = 0;
yImg = 0;
xMouse = 0;
yMouse = 0;
addMouseMotionListener( this );
addMouseListener( this );
JFrame frame = new JFrame();
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
pane = new JScrollPane( this );
frame.getContentPane().add( pane );
frame.setSize( 320, 200 );
frame.setVisible( true );
}
@Override
public void paintComponent( Graphics g )
{
g.fillRect( 0, 0, getWidth(), getHeight() );
g.drawImage( image, xImg, yImg, this );
this.revalidate();
}
@Override
public Dimension getPreferredSize()
{
int w = pane.getViewport().getWidth();
int h = pane.getViewport().getHeight();
if( xImg + image.getWidth() > w ) { w = xImg + image.getWidth(); }
if( yImg + image.getHeight() > h ) { h = yImg + image.getHeight(); }
return new Dimension( w, h );
}
@Override
public void mouseDragged( MouseEvent event )
{
xImg += event.getX() - xMouse;
if( xImg < 0 ) { xImg = 0; }
yImg += event.getY() - yMouse;
if( yImg < 0 ) { yImg = 0; }
xMouse = event.getX();
yMouse = event.getY();
repaint();
}
@Override
public void mousePressed( MouseEvent event )
{
xMouse = event.getX();
yMouse = event.getY();
}
@Override
public void mouseClicked( MouseEvent event ) {}
@Override
public void mouseMoved( MouseEvent arg0 ) {}
@Override
public void mouseEntered( MouseEvent arg0 ) {}
@Override
public void mouseExited( MouseEvent arg0 ) {}
@Override
public void mouseReleased( MouseEvent arg0 ) {}
} |