返回列表 發帖

[隨堂測驗] 滑鼠事件 (四)

不限方法, 完成如下的視窗程式練習, 在視窗的右下角顯示滑鼠指標的座標. 當滑鼠指標在視窗中移動時, 座標資訊會不斷地更新.
提示: 實作「MouseMotionListener 介面」或 繼承「MouseMotionAdapter 類別」

JFrame 的設定: 100, 100, 420, 320
JLabel 的設定:  290, 250, 40, 30 & 350, 250, 40, 30
附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

  1. package bbs.istak.org.tw;

  2. import java.awt.BorderLayout;
  3. import java.awt.EventQueue;

  4. import javax.swing.JFrame;
  5. import javax.swing.JPanel;
  6. import javax.swing.border.EmptyBorder;
  7. import javax.swing.JLabel;
  8. import java.awt.event.MouseMotionAdapter;
  9. import java.awt.event.MouseEvent;

  10. public class Main extends JFrame {

  11.         private JPanel contentPane;
  12.     private int x, y;
  13.        
  14.         public static void main(String[] args) {
  15.                 EventQueue.invokeLater(new Runnable() {
  16.                         public void run() {
  17.                                 try {
  18.                                         Main frame = new Main();
  19.                                         frame.setTitle("顯示滑鼠指標的座標");
  20.                                         frame.setVisible(true);
  21.                                 } catch (Exception e) {
  22.                                         e.printStackTrace();
  23.                                 }
  24.                         }
  25.                 });
  26.         }
  27.         public Main() {
  28.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  29.                 setBounds(100, 100, 420, 320);
  30.                 contentPane = new JPanel();
  31.                 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  32.                 setContentPane(contentPane);
  33.                 contentPane.setLayout(null);
  34.                
  35.                 JLabel lblNewLabel = new JLabel();
  36.                 lblNewLabel.setBounds(267, 243, 46, 15);
  37.                 contentPane.add(lblNewLabel);
  38.                
  39.                 JLabel lblNewLabel_1 = new JLabel();
  40.                 lblNewLabel_1.setBounds(336, 243, 46, 15);
  41.                 contentPane.add(lblNewLabel_1);
  42.                
  43.                 addMouseMotionListener(new MouseMotionAdapter() {
  44.                         @Override
  45.                         public void mouseMoved(MouseEvent e) {
  46.                                 x = e.getX();
  47.                                 y = e.getY();
  48.                                 lblNewLabel.setText("x: "+x);
  49.                                 lblNewLabel_1.setText("y: "+y);
  50.                         }
  51.                 });
  52.         }
  53. }
複製代碼

TOP

  1. package bbs.istak.org.tw;

  2. import java.awt.BorderLayout;
  3. import java.awt.EventQueue;

  4. import javax.swing.JFrame;
  5. import javax.swing.JPanel;
  6. import javax.swing.border.EmptyBorder;
  7. import javax.swing.JLabel;
  8. import java.awt.event.MouseMotionAdapter;
  9. import java.awt.event.MouseEvent;

  10. public class Main extends JFrame {

  11.         private JPanel contentPane;

  12.         /**
  13.          * Launch the application.
  14.          */
  15.         public static void main(String[] args) {
  16.                 EventQueue.invokeLater(new Runnable() {
  17.                         public void run() {
  18.                                 try {
  19.                                         Main frame = new Main();
  20.                                         frame.setVisible(true);
  21.                                 } catch (Exception e) {
  22.                                         e.printStackTrace();
  23.                                 }
  24.                         }
  25.                 });
  26.         }

  27.         /**
  28.          * Create the frame.
  29.          */
  30.         public Main() {
  31.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  32.                 setBounds(100, 100, 450, 300);
  33.                 contentPane = new JPanel();

  34.                 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  35.                 setContentPane(contentPane);
  36.                 contentPane.setLayout(null);
  37.                
  38.                 JLabel TX = new JLabel("x:");
  39.                 TX.setBounds(266, 237, 14, 15);
  40.                 contentPane.add(TX);
  41.                
  42.                 JLabel TY = new JLabel("y:");
  43.                 TY.setBounds(320, 237, 14, 15);
  44.                 contentPane.add(TY);
  45.                
  46.                 JLabel x = new JLabel("");
  47.                 x.setBounds(279, 237, 33, 15);
  48.                 contentPane.add(x);
  49.                
  50.                
  51.                
  52.                 JLabel y = new JLabel("");
  53.                 y.setBounds(332, 237, 33, 15);
  54.                 contentPane.add(y);
  55.                
  56.                 contentPane.addMouseMotionListener(new MouseMotionAdapter() {
  57.                         @Override
  58.                         public void mouseMoved(MouseEvent e) {
  59.                                 int x2 = e.getX();
  60.                                 int y2 = e.getY();
  61.                                 x.setText(String.valueOf(x2));
  62.                                 y.setText(String.valueOf(y2));
  63.                         }
  64.                 });
  65.                
  66.         }
  67. }
複製代碼

TOP

本帖最後由 張健勳 於 2018-3-16 23:57 編輯
  1. package bbs.istak.org.tw;

  2. import java.awt.BorderLayout;
  3. import java.awt.EventQueue;

  4. import javax.swing.JFrame;
  5. import javax.swing.JPanel;
  6. import javax.swing.border.EmptyBorder;
  7. import javax.swing.JLabel;
  8. import java.awt.event.MouseMotionAdapter;
  9. import java.awt.event.MouseEvent;

  10. public class Mouse extends JFrame {

  11.         private JPanel contentPane;
  12.         private int X, Y;
  13.         
  14.         public static void main(String[] args) {
  15.                 EventQueue.invokeLater(new Runnable() {
  16.                         public void run() {
  17.                                 try {
  18.                                         Mouse frame = new Mouse();
  19.                                         frame.setVisible(true);
  20.                                 } catch (Exception e) {
  21.                                         e.printStackTrace();
  22.                                 }
  23.                         }
  24.                 });
  25.         }
  26.         public Mouse() {
  27.                 setTitle("\u986F\u793A\u6ED1\u9F20\u6307\u6A19\u7684\u5EA7\u6A19");
  28.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  29.                 setBounds(100, 100, 420, 320);
  30.                 contentPane = new JPanel();
  31.                 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  32.                 setContentPane(contentPane);
  33.                 contentPane.setLayout(null);
  34.                
  35.                 JLabel JX = new JLabel(); //X座標LB
  36.                 JX.setBounds(267, 243, 46, 15);
  37.                 contentPane.add(JX);
  38.                
  39.                 JLabel JY = new JLabel(); //Y座標Lb
  40.                 JY.setBounds(336, 243, 46, 15);
  41.                 contentPane.add(JY);
  42.                
  43.                 addMouseMotionListener(new MouseMotionAdapter() {
  44.                         @Override
  45.                         public void mouseMoved(MouseEvent e) {
  46.                                 X = e.getX();//抓X座標
  47.                                 Y = e.getY();//抓Y座標
  48.                                 JX.setText("X: "+X); //顯示 X: (X座標)
  49.                                 JY.setText("Y: "+Y); //顯示Y: (Y座標)
  50.                         }
  51.                 });
  52.         }
  53. }
複製代碼

TOP

  1. import java.awt.event.MouseAdapter;
  2. import java.awt.event.MouseEvent;
  3. import java.awt.event.MouseMotionAdapter;
  4. import java.awt.event.MouseMotionListener;

  5. import javax.swing.*;
  6. public class MOUSE
  7. {
  8.     JFrame fm;
  9.     JLabel lbX,lbY;
  10.    
  11.         MOUSE()
  12.         {
  13.                 lbX= new JLabel();
  14.                 lbX.setBounds(290, 250, 40, 30);
  15.         lbY= new JLabel();
  16.         lbY.setBounds(350, 250, 40, 30);
  17.                 fm=new JFrame("顯示滑鼠指定的座標");
  18.                 fm.setBounds(100, 100, 420, 320);
  19.                 fm.setResizable(false);
  20.                 fm.setVisible(true);
  21.                 fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  22.                 fm.setLayout(null);
  23.                
  24.         fm.add(lbX);
  25.         fm.add(lbY);
  26.               
  27.         fm.addMouseMotionListener(new MouseMotionListener() {
  28.                        
  29.                         @Override
  30.                         public void mouseMoved(MouseEvent e) {                               
  31.                                 // TODO 自動產生的方法 Stub
  32.                                 lbX.setText("X="+e.getX());
  33.                                 lbY.setText("Y="+e.getY());
  34.                         }
  35.                        
  36.                         @Override
  37.                         public void mouseDragged(MouseEvent e) {
  38.                                 // TODO 自動產生的方法 Stub
  39.                                
  40.                         }
  41.                 });
  42.         }
  43.        
  44.         public static void main(String[] args)
  45.         {
  46.                 new MOUSE();
  47.         }

  48. }
複製代碼

TOP

返回列表