importjava.awt.Dimension;importjava.awt.Graphics;importjava.awt.Image;importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;importjavax.swing.ImageIcon;importjavax.swing.JFrame;importjavax.swing.JPanel;importjavax.swing.JScrollPane;public class ScrollPaneDemo extends JFrame implementsMouseListener {
ImagePanel jp;
JScrollPane jsp;publicScrollPaneDemo() {super("JScrollPane Demo");
jp= newImagePanel();
jp.setPreferredSize(new Dimension(600, 400));
jsp= newJScrollPane(jp);
jp.addMouseListener(this);
getContentPane().add(jsp);
setSize(640, 480);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}public voidmouseClicked(MouseEvent e) {
System.out.println("mouseClicked");
jp.enlarge();
jp.setPreferredSize(jp.getPreferredSize());
jsp.validate();
}public voidmousePressed(MouseEvent e) {//System.out.println("mousePressed");
}public voidmouseReleased(MouseEvent e) {//System.out.println("mouseReleased");
}public voidmouseEntered(MouseEvent e) {//System.out.println("mouseEntered");
}public voidmouseExited(MouseEvent e) {//System.out.println("mouseExited");
}public static voidmain(String[] args) {newScrollPaneDemo();
}
}class ImagePanel extendsJPanel {privateImage image;private Dimension theSize = new Dimension(600, 400);public voidsetImage(Image image) {this.image =image;this.repaint();
}publicImage getImage() {return this.image;
}public voidpaintComponent(Graphics g) {
ImageIcon img= new ImageIcon("Winter.jpg");
g.drawImage(img.getImage(),0, 0, theSize.width, theSize.height, null);
}public voidenlarge() {
theSize.width= (theSize.width * 101) / 100;
theSize.height= (theSize.height * 101) / 100;
setSize(theSize);
}publicDimension getPreferredSize() {return this.theSize;
}
}