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 閱讀(1655) 評(píng)論(0)  編輯  收藏 所屬分類: JAVA

          常用鏈接

          留言簿(21)

          隨筆分類(265)

          隨筆檔案(242)

          相冊(cè)

          JAVA網(wǎng)站

          關(guān)注的Blog

          搜索

          •  

          積分與排名

          • 積分 - 916111
          • 排名 - 40

          最新評(píng)論

          主站蜘蛛池模板: 三台县| 泰安市| 米脂县| 高台县| 武清区| 金坛市| 湘阴县| 马龙县| 高密市| 静海县| 陕西省| 西盟| 建始县| 太原市| 页游| 得荣县| 苏尼特右旗| 邵东县| 浦东新区| 绍兴县| 长海县| 扶风县| 康保县| 宁夏| 江达县| 炎陵县| 洛扎县| 应城市| 陵川县| 田林县| 宁安市| 米脂县| 嘉兴市| 若尔盖县| 如东县| 湘潭县| 金沙县| 水富县| 博客| 平泉县| 林西县|