#开始
不管是什么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 extends JFrame{ //需要继承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. 这种监听鼠标的方式不仅仅可以监听按钮