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 (600400));
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 (600400);
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 (600400);
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 (001024768);
66         g.drawImage (img.getImage (), 00, 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 
posted on 2007-02-13 09:29 -274°C 阅读(1642) 评论(0)  编辑  收藏 所属分类: JAVA

只有注册用户登录后才能发表评论。


网站导航:
 

常用链接

留言簿(21)

随笔分类(265)

随笔档案(242)

相册

JAVA网站

关注的Blog

搜索

  •  

积分与排名

  • 积分 - 911906
  • 排名 - 40

最新评论