JFrame圖形界面 ----鼠標消息
阿新 • • 發佈:2018-04-26
win 大小 鼠標右鍵 ID jbutton 按鈕 sed eve jlabel
#開始
不管是什麽GUI 按鈕的存在都是必不可少的而且還會有很多奇怪的按鈕
#代碼
1 package window; 2 3 import java.awt.Container; 4 import java.awt.event.MouseAdapter; 5 import java.awt.event.MouseEvent; 6 7 import javax.swing.JButton; 8 import javax.swing.JFrame; 9 import javax.swing.JLabel; 10 11 12 13 public class JFrameWindow extendsJFrame{ //需要繼承JFrame 14 15 public JFrameWindow(String title) 16 { 17 JFrame jf = new JFrame(title); 18 Container conn = jf.getContentPane(); //得到窗口的容器 19 conn.setLayout(null); //設置布局方式為空 也就是絕對布局 20 JLabel L1 = new JLabel("Hello,world!"); //創建一個標簽 並設置初始內容21 L1.setBounds(50,20,100,20); 22 23 JButton B1 = new JButton("按鈕1"); //創建一個按鈕 24 B1.setBounds(100,50,100,30); //設置按鈕的大小和位置 25 26 B1.addMouseListener(new MouseAdapter() { //添加一個鼠標事件監聽器 27 public void mousePressed(MouseEvent e) { 28 if(e.getButton()==MouseEvent.BUTTON1) //按下左鍵 29 { 30 System.out.println("鼠標左鍵"); 31 if(e.getClickCount()==2) 32 { 33 System.out.println("雙擊了"); 34 } 35 } 36 37 if(e.getButton()==MouseEvent.BUTTON2) //按下中鍵的滾輪 38 { 39 System.out.println("鼠標中鍵"); 40 } 41 42 if(e.getButton()==MouseEvent.BUTTON3) //按下右鍵 43 { 44 System.out.println("鼠標右鍵"); 45 } 46 } 47 }); 48 49 50 conn.add(L1); 51 conn.add(B1); //添加到容器 52 53 jf.setBounds(200,200,300,200); //設置窗口的屬性 窗口位置以及窗口的大小 54 jf.setVisible(true);//設置窗口可見 55 jf.setDefaultCloseOperation(DISPOSE_ON_CLOSE); //設置關閉方式 如果不設置的話 似乎關閉窗口之後不會退出程序 56 } 57 58 public static void main(String[] args) { 59 new JFrameWindow("窗口"); //創建窗口 60 } 61 62 }
#分析
這次的代碼是上次的代碼添加了幾行 添加了一個鼠標監聽器
在按鈕上面有鼠標消息之後 會在方法裏面傳入一個MouseEvent 對象 包含了事件的各種數據 例如按下了什麽按鍵 按了幾次 坐標
需要註意的是 這裏是鼠標監聽器 而不是按鈕事件監聽器 這就意味著 如果給標簽添加一個監聽器 就可以把標簽當作按鈕用
#運行結果
#技巧
1. 這種監聽鼠標的方式不僅僅可以監聽按鈕
JFrame圖形界面 ----鼠標消息