2012年9月9日 星期日

JFrame 的 Component 的事件

JFrame 的 Component 的滑鼠事件有分成很多種類型,以下列出各個滑鼠事件的意義

‧Mouse Entered:滑鼠進入 Component 區域中。
‧Mouse Exit:滑鼠離開 Component 區域。
‧Mouse Pressed:在 Component 區域中按下滑鼠按鍵。
‧Mouse Release:在 Component 區域中放開滑鼠按鍵。
‧Mouse Click:在 Component 區域中按下然後放開滑鼠按鍵。

可以簡單地用以下的程式碼做測試。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
 
import javax.swing.JFrame;
import javax.swing.JTextPane;
 
public class MainPanel extends JFrame {
  private JTextPane mainPanel = null;
  
  public MainPanel () {
    this.initialPanel();
    this.initialJFrame();
  }
  
  private void initialJFrame () {
    this.add(this.mainPanel);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setSize(200, 100);
    this.setLocationRelativeTo(null);
    this.setAlwaysOnTop(true);
    this.setVisible(true);
  }
  
  private void initialPanel () {
    this.mainPanel = new JTextPane();
    this.mainPanel.setEditable(false);
    this.mainPanel.addMouseListener(new MouseListener() {
      
      @Override
      public void mouseReleased(MouseEvent arg0) {
        System.out.println("Mouse release: " + arg0.toString());
      }
      
      @Override
      public void mousePressed(MouseEvent arg0) {
        System.out.println("Mouse press: " + arg0.toString());
      }
      
      @Override
      public void mouseExited(MouseEvent arg0) {
        System.out.println("Mouse exit: " + arg0.toString());
      }
      
      @Override
      public void mouseEntered(MouseEvent arg0) {
        System.out.println("Mouse enter: " + arg0.toString());
      }
      
      @Override
      public void mouseClicked(MouseEvent arg0) {
        System.out.println("Mouse click: " + arg0.toString());
      }
    });
  }
}

沒有留言: