Board logo

標題: 滑鼠事件 (三) [打印本頁]

作者: tonyh    時間: 2016-5-28 17:34     標題: 滑鼠事件 (三)

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

實作 MouseListener 與 MouseMotionListener 介面, 以完成滑鼠指標拖曳圖形之動作.
JFrame的設定: 100, 100, 420, 320
JLabel的設定: x, y, 128, 128





本帖隱藏的內容需要回復才可以瀏覽

作者: 張峻瑋    時間: 2016-6-8 20:43

  1. import javax.swing.*;
  2. import java.awt.event.MouseListener;
  3. import java.awt.event.MouseMotionListener;
  4. import java.awt.event.MouseEvent;
  5. public class Ch100 implements MouseListener,MouseMotionListener{
  6.     private JFrame fm;
  7.     private JLabel lb;
  8.     private ImageIcon icon_s,icon;
  9.     private int x=100,y=100,x1,y1,x2,y2;
  10.     private boolean isDrag=false;
  11.         Ch100()
  12.     {
  13.             icon_s=new ImageIcon(Ch100.class.getResource("pic/star.png"));
  14.             icon=new ImageIcon(Ch100.class.getResource("pic/santa.png"));
  15.                 lb=new JLabel(icon);
  16.                 lb.setBounds(0,0,128,128);
  17.                 lb.addMouseListener(this);
  18.                 lb.addMouseMotionListener(this);
  19.                 fm=new JFrame("滑鼠指標拖曳圖形");
  20.                 fm.setIconImage(icon_s.getImage());
  21.             fm.setBounds(100,100,420,320);
  22.             fm.setVisible(true);
  23.             fm.setResizable(false);
  24.             fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  25.             fm.setLayout(null);
  26.             fm.add(lb);
  27.     }
  28.         public void mousePressed(MouseEvent e){
  29.                 if(isDrag)
  30.                         return;
  31.                 if(e.getButton()==1)
  32.                         isDrag=true;
  33.                 x1=e.getX();
  34.                 y1=e.getY();
  35.         }
  36.         public void mouseReleased(MouseEvent e){
  37.                 if(!isDrag)
  38.                         return;
  39.                 isDrag=false;
  40.         }
  41.         public void mouseClicked(MouseEvent e){}
  42.         public void mouseEntered(MouseEvent e){}
  43.         public void mouseExited(MouseEvent e){}
  44.         public void mouseMoved(MouseEvent e){}
  45.         public void mouseDragged(MouseEvent e){
  46.             if(!isDrag)
  47.                     return;
  48.             x2=e.getX();
  49.             y2=e.getY();
  50.             x+=(x2-x1);
  51.             y+=(y2-y1);
  52.             lb.setLocation(x, y);
  53.         }
  54.         public static void main(String[] args){
  55.                 new Ch100();
  56.         }
  57. }
複製代碼

作者: 劉得恩    時間: 2016-6-10 21:42

本帖最後由 劉得恩 於 2016-6-18 16:58 編輯
  1. import javax.swing.*;
  2. import java.awt.event.MouseListener;
  3. import java.awt.event.MouseMotionListener;
  4. import java.awt.event.MouseEvent;
  5. public class Ch100 implements MouseListener,MouseMotionListener
  6. {
  7.     private JFrame f;
  8.     private JLabel s;
  9.     private ImageIcon icon1,icon2;
  10.     private boolean isDrag=false;
  11.     int x=100,y=100,x1,y1,x2,y2;
  12.     Ch100()
  13.     {
  14.         icon1=new ImageIcon(Ch100.class.getResource("pic/star.png"));
  15.         icon2=new ImageIcon(Ch100.class.getResource("pic/santa.png"));
  16.         s=new JLabel(icon2);
  17.         s.setBounds(x,y,128,128);
  18.         s.addMouseListener(this);
  19.         s.addMouseMotionListener(this);
  20.         f=new JFrame("\u3043\u0a9c\uc0ee");
  21.         f.setBounds(100,150,500,400);
  22.         f.setIconImage(icon1.getImage());
  23.         f.setVisible(true);
  24.         f.setResizable(false);
  25.         f.setLayout(null);
  26.         f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  27.         f.add(s);
  28.     }
  29.     public static void main(String args[])
  30.     {
  31.         new Ch100();
  32.     }
  33.     public void mousePressed(MouseEvent e)
  34.     {
  35.    
  36.         x1=e.getX();
  37.         y1=e.getY();
  38.     }
  39.     public void mouseReleased(MouseEvent e){
  40.       
  41.       
  42.     }
  43.     public void mouseClicked(MouseEvent e){}
  44.     public void mouseDragged(MouseEvent e){
  45.    
  46.         x2=e.getX();
  47.         y2=e.getY();
  48.         x+=x2-x1;
  49.         y+=y2-y1;
  50.         s.setLocation(x,y);
  51.     }
  52.     public void mouseEntered(MouseEvent e){}
  53.     public void mouseMoved(MouseEvent e){}
  54.     public void mouseExited(MouseEvent e){}
  55. }
複製代碼

作者: 張峻瑋    時間: 2016-6-18 16:57

  1. import javax.swing.*;
  2. import java.awt.event.MouseListener;
  3. import java.awt.event.MouseMotionListener;
  4. import java.awt.event.MouseEvent;
  5. public class Ch100 implements MouseListener,MouseMotionListener{
  6.     private JFrame fm;
  7.     private JLabel lb;
  8.     private ImageIcon icon_s,icon;
  9.     private int x=100,y=100,x1,y1,x2,y2;
  10.         Ch100()
  11.     {
  12.             icon_s=new ImageIcon(Ch100.class.getResource("pic/star.png"));
  13.             icon=new ImageIcon(Ch100.class.getResource("pic/santa.png"));
  14.                 lb=new JLabel(icon);
  15.                 lb.setBounds(0,0,128,128);
  16.                 lb.addMouseListener(this);
  17.                 lb.addMouseMotionListener(this);
  18.                 fm=new JFrame("滑鼠指標拖曳圖形");
  19.                 fm.setIconImage(icon_s.getImage());
  20.             fm.setBounds(100,100,420,320);
  21.             fm.setVisible(true);
  22.             fm.setResizable(false);
  23.             fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  24.             fm.setLayout(null);
  25.             fm.add(lb);
  26.     }
  27.         public void mousePressed(MouseEvent e){
  28.                 x1=e.getX();
  29.                 y1=e.getY();
  30.         }
  31.         public void mouseReleased(MouseEvent e){}
  32.         public void mouseClicked(MouseEvent e){}
  33.         public void mouseEntered(MouseEvent e){}
  34.         public void mouseExited(MouseEvent e){}
  35.         public void mouseMoved(MouseEvent e){}
  36.         public void mouseDragged(MouseEvent e){
  37.             x2=e.getX();
  38.             y2=e.getY();
  39.             x+=(x2-x1);
  40.             y+=(y2-y1);
  41.             lb.setLocation(x, y);
  42.         }
  43.         public static void main(String[] args){
  44.                 new Ch100();
  45.         }
  46. }
複製代碼

作者: 林宇翔    時間: 2016-6-18 17:02

  1. import javax.swing.*;
  2. import java.awt.event.MouseListener;
  3. import java.awt.event.MouseMotionListener;
  4. import java.awt.event.MouseEvent;
  5. public class Ch96 implements MouseListener,MouseMotionListener{
  6.     private JFrame fm;
  7.     private JLabel lb;
  8.     private ImageIcon icon_s,icon;
  9.     private int x=100,y=100,x1,y1,x2,y2;
  10.     private boolean isDrag=false;
  11.         Ch96()
  12.     {
  13.             icon_s=new ImageIcon(Ch96.class.getResource("pic/star.png"));
  14.             icon=new ImageIcon(Ch96.class.getResource("pic/santa.png"));
  15.                 lb=new JLabel(icon);
  16.                 lb.setBounds(0,0,128,128);
  17.                 lb.addMouseListener(this);
  18.                 lb.addMouseMotionListener(this);
  19.                 fm=new JFrame("滑鼠指標拖曳圖形");
  20.                 fm.setIconImage(icon_s.getImage());
  21.             fm.setBounds(100,100,420,320);
  22.             fm.setVisible(true);
  23.             fm.setResizable(false);
  24.             fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  25.             fm.setLayout(null);
  26.             fm.add(lb);
  27.     }
  28.         public void mousePressed(MouseEvent e){
  29.                 if(isDrag)
  30.                         return;
  31.                 if(e.getButton()==1)
  32.                         isDrag=true;
  33.                 x1=e.getX();
  34.                 y1=e.getY();
  35.         }
  36.         public void mouseReleased(MouseEvent e){
  37.                 if(!isDrag)
  38.                         return;
  39.                 isDrag=false;
  40.         }
  41.         public void mouseClicked(MouseEvent e){}
  42.         public void mouseEntered(MouseEvent e){}
  43.         public void mouseExited(MouseEvent e){}
  44.         public void mouseMoved(MouseEvent e){}
  45.         public void mouseDragged(MouseEvent e)
  46.         {
  47.             if(!isDrag)
  48.                     return;
  49.             x2=e.getX();
  50.             y2=e.getY();
  51.             x+=(x2-x1);
  52.             y+=(y2-y1);
  53.             lb.setLocation(x, y);
  54.         }
  55.         public static void main(String[] args){
  56.                 new Ch96();
  57.         }
  58. }
複製代碼

作者: 李允軒    時間: 2016-6-18 17:03

  1. import javax.swing.*;
  2. import java.awt.event.MouseListener;
  3. import java.awt.event.MouseMotionListener;
  4. import java.awt.event.MouseEvent;
  5. public class Ch01 implements MouseListener,MouseMotionListener{
  6.     private JFrame fm;
  7.     private JLabel lb;
  8.     private ImageIcon icon1,icon2;
  9.     private int x=100,y=100,x1,y1,x2,y2;
  10.         Ch01()
  11.     {
  12.             icon1=new ImageIcon(Ch01.class.getResource("pic/star.png"));
  13.             icon2=new ImageIcon(Ch01.class.getResource("pic/santa.png"));
  14.                 lb=new JLabel(icon2);
  15.                 lb.setBounds(x,y,128,128);
  16.                 lb.addMouseListener(this);
  17.                 lb.addMouseMotionListener(this);
  18.                 fm=new JFrame("滑鼠指標拖曳圖形");
  19.                 fm.setIconImage(icon1.getImage());
  20.             fm.setBounds(100,100,420,320);
  21.             fm.setVisible(true);
  22.             fm.setResizable(false);
  23.             fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  24.             fm.setLayout(null);
  25.             fm.add(lb);
  26.     }
  27.         public void mousePressed(MouseEvent e){
  28.                 x1=e.getX();
  29.                 y1=e.getY();
  30.         }
  31.         public void mouseReleased(MouseEvent e){}
  32.         public void mouseClicked(MouseEvent e){}
  33.         public void mouseEntered(MouseEvent e){}
  34.         public void mouseExited(MouseEvent e){}
  35.         public void mouseMoved(MouseEvent e){}
  36.         public void mouseDragged(MouseEvent e){
  37.             x2=e.getX();
  38.             y2=e.getY();
  39.             x+=(x2-x1);
  40.             y+=(y2-y1);
  41.             lb.setLocation(x, y);
  42.         }
  43.         public static void main(String[] args){
  44.                 Ch01 app=new Ch01();
  45.         }
  46. }
複製代碼

作者: 張彥承    時間: 2016-6-18 17:08

  1. import javax.swing.*;
  2. import java.awt.event.MouseListener;
  3. import java.awt.event.MouseMotionListener;
  4. import java.awt.event.MouseEvent;
  5. public class Ch96 implements MouseListener,MouseMotionListener{
  6.     private JFrame fm;
  7.     private JLabel lb;
  8.     private ImageIcon icon_s,icon;
  9.     private int x=100,y=100,x1,y1,x2,y2;
  10.     private boolean isDrag=false;
  11.         Ch96()
  12.     {
  13.             icon_s=new ImageIcon(Ch96.class.getResource("pic/star.png"));
  14.             icon=new ImageIcon(Ch96.class.getResource("pic/santa.png"));
  15.                 lb=new JLabel(icon);
  16.                 lb.setBounds(0,0,128,128);
  17.                 lb.addMouseListener(this);
  18.                 lb.addMouseMotionListener(this);
  19.                 fm=new JFrame("滑鼠指標拖曳圖形");
  20.                 fm.setIconImage(icon_s.getImage());
  21.             fm.setBounds(100,100,420,320);
  22.             fm.setVisible(true);
  23.             fm.setResizable(false);
  24.             fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  25.             fm.setLayout(null);
  26.             fm.add(lb);
  27.     }
  28.         public void mousePressed(MouseEvent e){
  29.                 if(isDrag)
  30.                         return;
  31.                 if(e.getButton()==1)
  32.                         isDrag=true;
  33.                 x1=e.getX();
  34.                 y1=e.getY();
  35.         }
  36.         public void mouseReleased(MouseEvent e){
  37.                 if(!isDrag)
  38.                         return;
  39.                 isDrag=false;
  40.         }
  41.         public void mouseClicked(MouseEvent e){}
  42.         public void mouseEntered(MouseEvent e){}
  43.         public void mouseExited(MouseEvent e){}
  44.         public void mouseMoved(MouseEvent e){}
  45.         public void mouseDragged(MouseEvent e)
  46.         {
  47.             if(!isDrag)
  48.                     return;
  49.             x2=e.getX();
  50.             y2=e.getY();
  51.             x+=(x2-x1);
  52.             y+=(y2-y1);
  53.             lb.setLocation(x, y);
  54.         }
  55.         public static void main(String[] args){
  56.                 new Ch96();
  57.         
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/) Powered by Discuz! 7.2