返回列表 發帖

滑鼠事件 (四)

本帖最後由 tonyh 於 2019-6-22 12:58 編輯

試分別使用「成員內部類別」與「匿名內部類別」,實作「MouseListener介面」或繼承「MouseAdapter類別」,完成如下的視窗程式,視窗上的圖案點擊便能置換,且彼此不會相互干擾。

JFrame的設定: 100, 100, 420, 320
JLabel的設定:
50, 20, 128, 128
250, 20, 128, 128
50, 160, 128, 128
250, 160, 128, 128





  1. import javax.swing.JFrame;
  2. import javax.swing.JLabel;
  3. import javax.swing.ImageIcon;
  4. import java.awt.event.MouseListener;
  5. import java.awt.event.MouseAdapter;
  6. import java.awt.event.MouseEvent;

  7. public class Ch101{
  8.        
  9.         private JFrame fm;
  10.         private JLabel lb1,lb2,lb3,lb4;
  11.         private ImageIcon ii,ii1,ii2,ii3,ii4,iig1,iig2,iig3,iig4;
  12.         private Try1 try1=new Try1();

  13.         Ch101()
  14.         {
  15.                 ii=new ImageIcon(Ch101.class.getResource("pic/star.png"));
  16.                 ii1=new ImageIcon(Ch101.class.getResource("pic/1.png"));
  17.                 ii2=new ImageIcon(Ch101.class.getResource("pic/2.png"));
  18.                 ii3=new ImageIcon(Ch101.class.getResource("pic/3.png"));
  19.                 ii4=new ImageIcon(Ch101.class.getResource("pic/4.png"));
  20.                 iig1=new ImageIcon(Ch101.class.getResource("pic/g1.png"));
  21.                 iig2=new ImageIcon(Ch101.class.getResource("pic/g2.png"));
  22.                 iig3=new ImageIcon(Ch101.class.getResource("pic/g3.png"));
  23.                 iig4=new ImageIcon(Ch101.class.getResource("pic/g4.png"));
  24.                
  25.                 lb1=new JLabel(iig1);
  26.                 lb1.setBounds(50, 20, 128, 128);
  27.                 lb1.addMouseListener(try1);

  28.                 lb2=new JLabel(iig2);
  29.                 lb2.setBounds(250, 20, 128, 128);
  30.                 lb2.addMouseListener(new Try2());
  31.                
  32.                 lb3=new JLabel(iig3);
  33.                 lb3.setBounds(50, 160, 128, 128);
  34.                 lb3.addMouseListener(new MouseListener(){     //匿名式
  35.                         public void mousePressed(MouseEvent e)
  36.                         {
  37.                                 if(lb3.getIcon()==iig3)
  38.                                         lb3.setIcon(ii3);
  39.                                 else
  40.                                         lb3.setIcon(iig3);
  41.                         }
  42.                         public void mouseReleased(MouseEvent e){}
  43.                         public void mouseClicked(MouseEvent e){}
  44.                         public void mouseEntered(MouseEvent e){}
  45.                         public void mouseExited(MouseEvent e){}               
  46.                 });
  47.                
  48.                 lb4=new JLabel(iig4);
  49.                 lb4.setBounds(250, 160, 128, 128);
  50.                 lb4.addMouseListener(new MouseAdapter(){     //匿名式
  51.                         public void mousePressed(MouseEvent e)
  52.                         {
  53.                                 if(lb4.getIcon()==iig4)
  54.                                         lb4.setIcon(ii4);
  55.                                 else
  56.                                         lb4.setIcon(iig4);
  57.                         }       
  58.                 });
  59.                
  60.                 fm=new JFrame("滑鼠指標拖曳圖形");
  61.                 fm.setBounds(100, 100, 420, 320);
  62.                 fm.setIconImage(ii.getImage());
  63.                 fm.setVisible(true);
  64.                 fm.setResizable(false);
  65.                 fm.setLayout(null);
  66.                 fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  67.                 fm.add(lb1);
  68.                 fm.add(lb2);
  69.                 fm.add(lb3);
  70.                 fm.add(lb4);
  71.         }
  72.         class Try1 implements MouseListener    //成員式
  73.         {
  74.                 public void mousePressed(MouseEvent e)
  75.                 {
  76.                         if(lb1.getIcon()==iig1)
  77.                                 lb1.setIcon(ii1);
  78.                         else
  79.                                 lb1.setIcon(iig1);
  80.                 }
  81.                 public void mouseReleased(MouseEvent e){}
  82.                 public void mouseClicked(MouseEvent e){}
  83.                 public void mouseEntered(MouseEvent e){}
  84.                 public void mouseExited(MouseEvent e){}       
  85.         }
  86.         class Try2 extends MouseAdapter     //成員式
  87.         {
  88.                 public void mousePressed(MouseEvent e)
  89.                 {
  90.                         if(lb2.getIcon()==iig2)
  91.                                 lb2.setIcon(ii2);
  92.                         else
  93.                                 lb2.setIcon(iig2);
  94.                 }
  95.         }

  96.         public static void main(String[] args) {
  97.                 new Ch101();
  98.         }
  99. }
複製代碼
附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

本帖最後由 張峻瑋 於 2016-6-18 20:22 編輯
  1. import java.awt.event.MouseAdapter;
  2. import java.awt.event.MouseEvent;
  3. import java.awt.event.MouseListener;
  4. import javax.swing.ImageIcon;
  5. import javax.swing.JFrame;
  6. import javax.swing.JLabel;
  7. public class Ch101{
  8.     private JFrame fm;
  9.     private JLabel lb1,lb2,lb3,lb4;
  10.     private ImageIcon i0,i1,i2,i3,i4,ig1,ig2,ig3,ig4;
  11.     private T1 t1=new T1();
  12.     Ch101()
  13.     {   
  14.             i0=new ImageIcon(Ch101.class.getResource("pic/star.png"));
  15.         i1=new ImageIcon(Ch101.class.getResource("pic/2.png"));
  16.         i2=new ImageIcon(Ch101.class.getResource("pic/3.png"));
  17.         i3=new ImageIcon(Ch101.class.getResource("pic/1.png"));
  18.         i4=new ImageIcon(Ch101.class.getResource("pic/4.png"));
  19.         ig1=new ImageIcon(Ch101.class.getResource("pic/g2.png"));
  20.         ig2=new ImageIcon(Ch101.class.getResource("pic/g1.png"));
  21.         ig3=new ImageIcon(Ch101.class.getResource("pic/g3.png"));
  22.         ig4=new ImageIcon(Ch101.class.getResource("pic/g4.png"));   
  23.         lb1=new JLabel(ig1);
  24.         lb1.setBounds(50,20,128,128);
  25.         lb1.addMouseListener(t1);
  26.         lb2=new JLabel(ig2);
  27.         lb2.setBounds(250,20,128,128);
  28.         lb2.addMouseListener(new T2());
  29.         lb3=new JLabel(ig3);
  30.         lb3.setBounds(50,160,128,128);
  31.         lb3.addMouseListener(new MouseListener(){
  32.                 public void mousePressed(MouseEvent e){
  33.                         if(lb3.getIcon()==ig3)
  34.                     lb3.setIcon(i3);
  35.                         else
  36.                     lb3.setIcon(ig3);
  37.                 }
  38.                 public void mouseReleased(MouseEvent e){}
  39.                 public void mouseClicked(MouseEvent e){}
  40.                 public void mouseEntered(MouseEvent e){}
  41.                 public void mouseExited(MouseEvent e){}
  42.         });
  43.         lb4=new JLabel(ig4);
  44.         lb4.setBounds(250,160,128,128);
  45.         lb4.addMouseListener(new MouseAdapter(){
  46.                 public void mousePressed(MouseEvent e){
  47.                         if(lb4.getIcon()==ig4)
  48.                     lb4.setIcon(i4);
  49.                         else
  50.                     lb4.setIcon(ig4);
  51.                 }
  52.         });
  53.         fm=new JFrame("點按滑鼠切換圖形");
  54.         fm.setIconImage(i0.getImage());        
  55.         fm.setBounds(100,100,420,320);
  56.         fm.setVisible(true);
  57.         fm.setResizable(false);
  58.         fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  59.         fm.setLayout(null);
  60.         fm.add(lb1);
  61.         fm.add(lb2);
  62.         fm.add(lb3);
  63.         fm.add(lb4);
  64.     }
  65.     class T1 implements MouseListener
  66.     {
  67.             public void mousePressed(MouseEvent e){
  68.                     if(lb1.getIcon()==ig1)
  69.                 lb1.setIcon(i1);
  70.                     else
  71.                 lb1.setIcon(ig1);
  72.             }
  73.             public void mouseReleased(MouseEvent e){}
  74.             public void mouseClicked(MouseEvent e){}
  75.             public void mouseEntered(MouseEvent e){}
  76.             public void mouseExited(MouseEvent e){}
  77.     }
  78.     class T2 extends MouseAdapter
  79.     {
  80.             public void mousePressed(MouseEvent e){
  81.                     if(lb2.getIcon()==ig2)
  82.                 lb2.setIcon(i2);
  83.                     else
  84.                 lb2.setIcon(ig2);
  85.             }
  86.     }
  87.     public static void main(String[] args){
  88.         new Ch101();
  89.     }
  90. }
複製代碼

TOP

  1. import javax.swing.*;
  2. import java.awt.event.*;
  3. public class Ch101 implements MouseListener{
  4.         JFrame f;
  5.         JLabel icon,lb[]=new JLabel[4];
  6.         ImageIcon ic,g[]=new ImageIcon[4],pic[]=new ImageIcon[4];
  7.         Ch101()
  8.         {
  9.                 ic=new ImageIcon(Ch101.class.getResource("pic/star.png"));
  10.                 for(int i=0;i<4;i++)
  11.                         pic[i]=new ImageIcon(Ch101.class.getResource("pic/"+(i+1)+".png"));
  12.                 for(int i=0;i<4;i++)
  13.                         g[i]=new ImageIcon(Ch101.class.getResource("pic/g"+(i+1)+".png"));
  14.                 f=new JFrame("xxxx");
  15.                 f.setLayout(null);
  16.                 f.setResizable(false);
  17.                 f.setVisible(true);
  18.                 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  19.                 f.setBounds(100, 100, 420, 320);
  20.                 f.setIconImage(ic.getImage());
  21.                 for(int i=0;i<2;i++)
  22.                 {
  23.                         lb[i]=new JLabel(g[i]);
  24.                         lb[i].setBounds(i*200+50,20,128,128);
  25.             lb[i].addMouseListener(this);
  26.                         f.add(lb[i]);
  27.                 }
  28.                 for(int i=0;i<2;i++)
  29.                 {
  30.                         lb[i+2]=new JLabel(g[i+2]);
  31.                         lb[i+2].setBounds(i*200+50,160,128,128);
  32.                         lb[i+2].addMouseListener(this);
  33.             f.add(lb[i+2]);
  34.                 }
  35.         }
  36.         public static void main(String[] args){
  37.                 new Ch101();
  38.         }
  39.     public void mousePressed(MouseEvent e)
  40.     {
  41.         JLabel l=(JLabel)e.getSource();
  42.         ;
  43.         for(int i=0;i<4;i++)
  44.            if(l.getIcon()==g[i])
  45.                 lb[i].setIcon(pic[i]);
  46.            else if(l.getIcon()==pic[i])
  47.                 lb[i].setIcon(g[i]);
  48.                
  49.         
  50.     }
  51.     public void mouseReleased(MouseEvent e){}
  52.     public void mouseClicked(MouseEvent e){}
  53.     public void mouseEntered(MouseEvent e){}
  54.     public void mouseExited(MouseEvent e){}
  55. }
複製代碼

TOP

  1. import javax.swing.JFrame;
  2. import javax.swing.JLabel;
  3. import javax.swing.ImageIcon;
  4. import java.awt.event.MouseListener;
  5. import java.awt.event.MouseAdapter;
  6. import java.awt.event.MouseEvent;

  7. public class ch00{
  8.         
  9.         private JFrame fm;
  10.         private JLabel lb1,lb2,lb3,lb4;
  11.         private ImageIcon ii,ii1,ii2,ii3,ii4,iig1,iig2,iig3,iig4;
  12.         private Try1 try1=new Try1();

  13.         ch00()
  14.         {
  15.                 ii=new ImageIcon(ch00.class.getResource("pic/star.png"));
  16.                 ii1=new ImageIcon(ch00.class.getResource("pic/1.png"));
  17.                 ii2=new ImageIcon(ch00.class.getResource("pic/2.png"));
  18.                 ii3=new ImageIcon(ch00.class.getResource("pic/3.png"));
  19.                 ii4=new ImageIcon(ch00.class.getResource("pic/4.png"));
  20.                 iig1=new ImageIcon(ch00.class.getResource("pic/g1.png"));
  21.                 iig2=new ImageIcon(ch00.class.getResource("pic/g2.png"));
  22.                 iig3=new ImageIcon(ch00.class.getResource("pic/g3.png"));
  23.                 iig4=new ImageIcon(ch00.class.getResource("pic/g4.png"));
  24.                
  25.                 lb1=new JLabel(iig1);
  26.                 lb1.setBounds(50, 20, 128, 128);
  27.                 lb1.addMouseListener(try1);

  28.                 lb2=new JLabel(iig2);
  29.                 lb2.setBounds(250, 20, 128, 128);
  30.                 lb2.addMouseListener(new Try2());
  31.                
  32.                 lb3=new JLabel(iig3);
  33.                 lb3.setBounds(50, 160, 128, 128);
  34.                 lb3.addMouseListener(new MouseListener(){     //匿名式
  35.                         public void mousePressed(MouseEvent e)
  36.                         {
  37.                                 if(lb3.getIcon()==iig3)
  38.                                         lb3.setIcon(ii3);
  39.                                 else
  40.                                         lb3.setIcon(iig3);
  41.                         }
  42.                         public void mouseReleased(MouseEvent e){}
  43.                         public void mouseClicked(MouseEvent e){}
  44.                         public void mouseEntered(MouseEvent e){}
  45.                         public void mouseExited(MouseEvent e){}               
  46.                 });
  47.                
  48.                 lb4=new JLabel(iig4);
  49.                 lb4.setBounds(250, 160, 128, 128);
  50.                 lb4.addMouseListener(new MouseAdapter(){     //匿名式
  51.                         public void mousePressed(MouseEvent e)
  52.                         {
  53.                                 if(lb4.getIcon()==iig4)
  54.                                         lb4.setIcon(ii4);
  55.                                 else
  56.                                         lb4.setIcon(iig4);
  57.                         }        
  58.                 });
  59.                
  60.                 fm=new JFrame("滑鼠指標拖曳圖形");
  61.                 fm.setBounds(100, 100, 420, 320);
  62.                 fm.setIconImage(ii.getImage());
  63.                 fm.setVisible(true);
  64.                 fm.setResizable(false);
  65.                 fm.setLayout(null);
  66.                 fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  67.                 fm.add(lb1);
  68.                 fm.add(lb2);
  69.                 fm.add(lb3);
  70.                 fm.add(lb4);
  71.         }
  72.         class Try1 implements MouseListener    //成員式
  73.         {
  74.                 public void mousePressed(MouseEvent e)
  75.                 {
  76.                         if(lb1.getIcon()==iig1)
  77.                                 lb1.setIcon(ii1);
  78.                         else
  79.                                 lb1.setIcon(iig1);
  80.                 }
  81.                 public void mouseReleased(MouseEvent e){}
  82.                 public void mouseClicked(MouseEvent e){}
  83.                 public void mouseEntered(MouseEvent e){}
  84.                 public void mouseExited(MouseEvent e){}        
  85.         }
  86.         class Try2 extends MouseAdapter     //成員式
  87.         {
  88.                 public void mousePressed(MouseEvent e)
  89.                 {
  90.                         if(lb2.getIcon()==iig2)
  91.                                 lb2.setIcon(ii2);
  92.                         else
  93.                                 lb2.setIcon(iig2);
  94.                 }
  95.         }

  96.         public static void main(String[] args) {
  97.                 new ch00();
  98.         }
  99. }
複製代碼

TOP

  1. import javax.swing.JFrame;
  2. import javax.swing.JLabel;
  3. import javax.swing.ImageIcon;
  4. import java.awt.event.MouseListener;
  5. import java.awt.event.MouseAdapter;
  6. import java.awt.event.MouseEvent;

  7. public class ch01{
  8.         
  9.         private JFrame fm;
  10.         private JLabel lb1,lb2,lb3,lb4;
  11.         private ImageIcon ii,ii1,ii2,ii3,ii4,iig1,iig2,iig3,iig4;

  12.         ch01()
  13.         {
  14.                 ii=new ImageIcon(ch01.class.getResource("pic/star.png"));
  15.                 ii1=new ImageIcon(ch01.class.getResource("pic/1.png"));
  16.                 ii2=new ImageIcon(ch01.class.getResource("pic/2.png"));
  17.                 ii3=new ImageIcon(ch01.class.getResource("pic/3.png"));
  18.                 ii4=new ImageIcon(ch01.class.getResource("pic/4.png"));
  19.                 iig1=new ImageIcon(ch01.class.getResource("pic/g1.png"));
  20.                 iig2=new ImageIcon(ch01.class.getResource("pic/g2.png"));
  21.                 iig3=new ImageIcon(ch01.class.getResource("pic/g3.png"));
  22.                 iig4=new ImageIcon(ch01.class.getResource("pic/g4.png"));
  23.                
  24.                 lb1=new JLabel(iig1);
  25.                 lb1.setBounds(50, 20, 128, 128);
  26.                 lb1.addMouseListener(new MouseAdapter(){   
  27.                     public void mousePressed(MouseEvent e)
  28.                     {
  29.                             if(lb1.getIcon()==iig1)
  30.                                     lb1.setIcon(ii1);
  31.                             else
  32.                                     lb1.setIcon(iig1);
  33.                     }        
  34.                 });

  35.                 lb2=new JLabel(iig2);
  36.                 lb2.setBounds(250, 20, 128, 128);
  37.                 lb2.addMouseListener(new MouseAdapter(){   
  38.                     public void mousePressed(MouseEvent e)
  39.                     {
  40.                             if(lb2.getIcon()==iig2)
  41.                                     lb2.setIcon(ii2);
  42.                             else
  43.                                     lb2.setIcon(iig2);
  44.                     }        
  45.                 });
  46.                
  47.                 lb3=new JLabel(iig3);
  48.                 lb3.setBounds(50, 160, 128, 128);
  49.                 lb3.addMouseListener(new MouseAdapter(){   
  50.                     public void mousePressed(MouseEvent e)
  51.                     {
  52.                             if(lb3.getIcon()==iig3)
  53.                                     lb3.setIcon(ii3);
  54.                             else
  55.                                     lb3.setIcon(iig3);
  56.                     }        
  57.             });
  58.                
  59.                 lb4=new JLabel(iig4);
  60.                 lb4.setBounds(250, 160, 128, 128);
  61.                 lb4.addMouseListener(new MouseAdapter(){   
  62.                         public void mousePressed(MouseEvent e)
  63.                         {
  64.                                 if(lb4.getIcon()==iig4)
  65.                                         lb4.setIcon(ii4);
  66.                                 else
  67.                                         lb4.setIcon(iig4);
  68.                         }        
  69.                 });
  70.                
  71.                 fm=new JFrame("滑鼠指標拖曳圖形");
  72.                 fm.setBounds(100, 100, 420, 320);
  73.                 fm.setIconImage(ii.getImage());
  74.                 fm.setVisible(true);
  75.                 fm.setResizable(false);
  76.                 fm.setLayout(null);
  77.                 fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  78.                 fm.add(lb1);
  79.                 fm.add(lb2);
  80.                 fm.add(lb3);
  81.                 fm.add(lb4);
  82.         }
  83.         public static void main(String[] args) {
  84.                 ch01 app=new ch01();
  85.         }
  86. }
複製代碼
كخخخخخخخخخخخخخ

TOP

  1. import javax.swing.JFrame;
  2. import javax.swing.JLabel;
  3. import javax.swing.ImageIcon;
  4. import java.awt.event.MouseListener;
  5. import java.awt.event.MouseAdapter;
  6. import java.awt.event.MouseEvent;

  7. public class Ch101{
  8.         
  9.         private JFrame fm;
  10.         private JLabel lb1,lb2,lb3,lb4;
  11.         private ImageIcon ii,ii1,ii2,ii3,ii4,iig1,iig2,iig3,iig4;
  12.         private Try1 try1=new Try1();

  13.         Ch101()
  14.         {
  15.                 ii=new ImageIcon(Ch101.class.getResource("pic/star.png"));
  16.                 ii1=new ImageIcon(Ch101.class.getResource("pic/1.png"));
  17.                 ii2=new ImageIcon(Ch101.class.getResource("pic/2.png"));
  18.                 ii3=new ImageIcon(Ch101.class.getResource("pic/3.png"));
  19.                 ii4=new ImageIcon(Ch101.class.getResource("pic/4.png"));
  20.                 iig1=new ImageIcon(Ch101.class.getResource("pic/g1.png"));
  21.                 iig2=new ImageIcon(Ch101.class.getResource("pic/g2.png"));
  22.                 iig3=new ImageIcon(Ch101.class.getResource("pic/g3.png"));
  23.                 iig4=new ImageIcon(Ch101.class.getResource("pic/g4.png"));
  24.                
  25.                 lb1=new JLabel(iig1);
  26.                 lb1.setBounds(50, 20, 128, 128);
  27.                 lb1.addMouseListener(try1);

  28.                 lb2=new JLabel(iig2);
  29.                 lb2.setBounds(250, 20, 128, 128);
  30.                 lb2.addMouseListener(new Try2());
  31.                
  32.                 lb3=new JLabel(iig3);
  33.                 lb3.setBounds(50, 160, 128, 128);
  34.                 lb3.addMouseListener(new MouseListener(){     
  35.                         public void mousePressed(MouseEvent e)
  36.                         {
  37.                                 if(lb3.getIcon()==iig3)
  38.                                         lb3.setIcon(ii3);
  39.                                 else
  40.                                         lb3.setIcon(iig3);
  41.                         }
  42.                         public void mouseReleased(MouseEvent e){}
  43.                         public void mouseClicked(MouseEvent e){}
  44.                         public void mouseEntered(MouseEvent e){}
  45.                         public void mouseExited(MouseEvent e){}               
  46.                 });
  47.                
  48.                 lb4=new JLabel(iig4);
  49.                 lb4.setBounds(250, 160, 128, 128);
  50.                 lb4.addMouseListener(new MouseAdapter(){   
  51.                         public void mousePressed(MouseEvent e)
  52.                         {
  53.                                 if(lb4.getIcon()==iig4)
  54.                                         lb4.setIcon(ii4);
  55.                                 else
  56.                                         lb4.setIcon(iig4);
  57.                         }        
  58.                 });
  59.                
  60.                 fm=new JFrame("滑鼠指標拖曳圖形");
  61.                 fm.setBounds(100, 100, 420, 320);
  62.                 fm.setIconImage(ii.getImage());
  63.                 fm.setVisible(true);
  64.                 fm.setResizable(false);
  65.                 fm.setLayout(null);
  66.                 fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  67.                 fm.add(lb1);
  68.                 fm.add(lb2);
  69.                 fm.add(lb3);
  70.                 fm.add(lb4);
  71.         }
  72.         class Try1 implements MouseListener   
  73.         {
  74.                 public void mousePressed(MouseEvent e)
  75.                 {
  76.                         if(lb1.getIcon()==iig1)
  77.                                 lb1.setIcon(ii1);
  78.                         else
  79.                                 lb1.setIcon(iig1);
  80.                 }
  81.                 public void mouseReleased(MouseEvent e){}
  82.                 public void mouseClicked(MouseEvent e){}
  83.                 public void mouseEntered(MouseEvent e){}
  84.                 public void mouseExited(MouseEvent e){}        
  85.         }
  86.         class Try2 extends MouseAdapter     //成員式
  87.         {
  88.                 public void mousePressed(MouseEvent e)
  89.                 {
  90.                         if(lb2.getIcon()==iig2)
  91.                                 lb2.setIcon(ii2);
  92.                         else
  93.                                 lb2.setIcon(iig2);
  94.                 }
  95.         }

  96.         public static void main(String[] args) {
  97.                 new Ch101();
  98.         }
  99. }
複製代碼

TOP

返回列表