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

          常用鏈接

          留言簿(21)

          隨筆分類(265)

          隨筆檔案(242)

          相冊

          JAVA網站

          關注的Blog

          搜索

          •  

          積分與排名

          • 積分 - 914173
          • 排名 - 40

          最新評論

          主站蜘蛛池模板: 平定县| 西乌珠穆沁旗| 六枝特区| 安泽县| 博野县| 昌宁县| 蒙城县| 那曲县| 广德县| 纳雍县| 阜新| 肥东县| 牟定县| 南开区| 镇江市| 盈江县| 息烽县| 昌宁县| 昭平县| 景德镇市| 方城县| 宝应县| 吉木乃县| 乌兰县| 开江县| 鹤山市| 古田县| 岚皋县| 旬邑县| 潜山县| 基隆市| 宜春市| 吐鲁番市| 高州市| 盐池县| 临安市| 菏泽市| 伊宁市| 阳高县| 托克托县| 平顶山市|