<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
1
import
java.awt.
*
;
2 import java.awt.event.ActionEvent;
3 import java.awt.event.ActionListener;
4 import javax.swing. * ;
5 public class Main extends JFrame implements ActionListener
6 {
7 private ImagePanel imgPane = null ;
8 private JScrollPane scrollPane = null ;
9 private JButton zoomin = null ;
10 private JButton zoomout = null ;
11 public Main ()
12 {
13 super ( " JScrollPane Demo " );
14 imgPane = new ImagePanel ( " /1.jpg " );
15 imgPane.setPreferredSize ( new Dimension ( 600 , 400 ));
16 scrollPane = new JScrollPane (imgPane);
17 scrollPane.setVerticalScrollBarPolicy (JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
18 scrollPane.setHorizontalScrollBarPolicy (JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
19 zoomin = new JButton ( " 放大 " );
20 zoomout = new JButton ( " 缩小 " );
21 zoomin.setBounds ( 0 , 10 , 60 , 30 );
22 zoomout.setBounds ( 80 , 10 , 60 , 30 );
23 zoomin.addActionListener ( this );
24 zoomout.addActionListener ( this );
25 imgPane.add (zoomout,JLayeredPane.DRAG_LAYER);
26 imgPane.add (zoomin,JLayeredPane.DRAG_LAYER);
27 this .add (scrollPane);
28 setSize ( 600 , 400 );
29 setDefaultCloseOperation (EXIT_ON_CLOSE);
30 setVisible ( true );
31 }
32 public static void main ( String[] args )
33 {
34 new Main ();
35 }
36 public void actionPerformed ( ActionEvent e )
37 {
38 if ((JButton) (e.getSource ()) == zoomin)
39 {
40 imgPane.enlarge ();
41 imgPane.setPreferredSize (imgPane.getPreferredSize ());
42 scrollPane.validate ();
43 }
44 else if ((JButton) (e.getSource ()) == zoomout)
45 {
46 imgPane.ensmall ();
47 imgPane.setPreferredSize (imgPane.getPreferredSize ());
48 scrollPane.validate ();
49 }
50 }
51 }
52
53 class ImagePanel extends JLayeredPane
54 {
55 private Dimension theSize = new Dimension ( 600 , 400 );
56 private ImageIcon img = null ;
57 public ImagePanel (String imgpath )
58 {
59 super ();
60 setLayout ( null );
61 this .img = new ImageIcon (getClass ().getResource (imgpath));
62 }
63 public void paintComponent ( Graphics g )
64 {
65 g.clearRect ( 0 , 0 , 1024 , 768 );
66 g.drawImage (img.getImage (), 0 , 0 , theSize.width, theSize.height, null );
67 }
68 public void enlarge ( )
69 {
70 theSize.width = (theSize.width * 101 ) / 100 ;
71 theSize.height = (theSize.height * 101 ) / 100 ;
72 setSize (theSize);
73 }
74 public void ensmall ( )
75 {
76 theSize.width = (theSize.width * 100 ) / 101 ;
77 theSize.height = (theSize.height * 100 ) / 101 ;
78 setSize (theSize);
79 }
80 public Dimension getPreferredSize ( )
81 {
82 return this .theSize;
83 }
84 }
85
2 import java.awt.event.ActionEvent;
3 import java.awt.event.ActionListener;
4 import javax.swing. * ;
5 public class Main extends JFrame implements ActionListener
6 {
7 private ImagePanel imgPane = null ;
8 private JScrollPane scrollPane = null ;
9 private JButton zoomin = null ;
10 private JButton zoomout = null ;
11 public Main ()
12 {
13 super ( " JScrollPane Demo " );
14 imgPane = new ImagePanel ( " /1.jpg " );
15 imgPane.setPreferredSize ( new Dimension ( 600 , 400 ));
16 scrollPane = new JScrollPane (imgPane);
17 scrollPane.setVerticalScrollBarPolicy (JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
18 scrollPane.setHorizontalScrollBarPolicy (JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
19 zoomin = new JButton ( " 放大 " );
20 zoomout = new JButton ( " 缩小 " );
21 zoomin.setBounds ( 0 , 10 , 60 , 30 );
22 zoomout.setBounds ( 80 , 10 , 60 , 30 );
23 zoomin.addActionListener ( this );
24 zoomout.addActionListener ( this );
25 imgPane.add (zoomout,JLayeredPane.DRAG_LAYER);
26 imgPane.add (zoomin,JLayeredPane.DRAG_LAYER);
27 this .add (scrollPane);
28 setSize ( 600 , 400 );
29 setDefaultCloseOperation (EXIT_ON_CLOSE);
30 setVisible ( true );
31 }
32 public static void main ( String[] args )
33 {
34 new Main ();
35 }
36 public void actionPerformed ( ActionEvent e )
37 {
38 if ((JButton) (e.getSource ()) == zoomin)
39 {
40 imgPane.enlarge ();
41 imgPane.setPreferredSize (imgPane.getPreferredSize ());
42 scrollPane.validate ();
43 }
44 else if ((JButton) (e.getSource ()) == zoomout)
45 {
46 imgPane.ensmall ();
47 imgPane.setPreferredSize (imgPane.getPreferredSize ());
48 scrollPane.validate ();
49 }
50 }
51 }
52
53 class ImagePanel extends JLayeredPane
54 {
55 private Dimension theSize = new Dimension ( 600 , 400 );
56 private ImageIcon img = null ;
57 public ImagePanel (String imgpath )
58 {
59 super ();
60 setLayout ( null );
61 this .img = new ImageIcon (getClass ().getResource (imgpath));
62 }
63 public void paintComponent ( Graphics g )
64 {
65 g.clearRect ( 0 , 0 , 1024 , 768 );
66 g.drawImage (img.getImage (), 0 , 0 , theSize.width, theSize.height, null );
67 }
68 public void enlarge ( )
69 {
70 theSize.width = (theSize.width * 101 ) / 100 ;
71 theSize.height = (theSize.height * 101 ) / 100 ;
72 setSize (theSize);
73 }
74 public void ensmall ( )
75 {
76 theSize.width = (theSize.width * 100 ) / 101 ;
77 theSize.height = (theSize.height * 100 ) / 101 ;
78 setSize (theSize);
79 }
80 public Dimension getPreferredSize ( )
81 {
82 return this .theSize;
83 }
84 }
85