![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package howework_07; 2 public class Example9_10 { 3 public static void main(String args[]) { 4 WindowMouse win=new WindowMouse(); 5 win.setTitle("处理鼠标事件"); 6 win.setBounds(100,100,460,360); 7 } 8 }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package howework_07; 2 import java.awt.FlowLayout; 3 import javax.swing.JButton; 4 import javax.swing.JFrame; 5 import javax.swing.JScrollPane; 6 import javax.swing.JTextArea; 7 import javax.swing.JTextField; 8 public class WindowMouse extends JFrame{ 9 JTextField text; 10 JButton button; 11 JTextArea textArea; 12 MousePolice police; 13 WindowMouse(){//在窗口的构造函数中把组件实例化 14 init(); 15 setVisible(true); 16 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 17 } 18 void init() { 19 setLayout(new FlowLayout());//将面板的布局设置为FlowLayout,面板上增加的组件默认是按照从左到右顺序排列 20 text =new JTextField(8); 21 textArea =new JTextArea(5,28); 22 police =new MousePolice(); 23 24 police.setJTextArea(textArea); 25 26 text.addMouseListener(police);//事件源注册监听器 27 button =new JButton("按钮"); 28 button.addMouseListener(police);//事件源注册监听器 29 //向窗口中加入组件 30 addMouseListener(police); 31 add(button); 32 add(text); 33 add(new JScrollPane(textArea));//滚动条 34 } 35 }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package howework_07; 2 3 import java.awt.event.MouseEvent; 4 import java.awt.event.MouseListener; 5 6 import javax.swing.JButton; 7 import javax.swing.JTextArea; 8 import javax.swing.JTextField; 9 10 public class MousePolice implements MouseListener{ 11 JTextArea area;//文本 12 public void setJTextArea(JTextArea area) { 13 this.area=area; 14 } 15 public void mousePressed(MouseEvent e) { 16 area.append(" 鼠标按下,位置:"+"("+e.getX()+","+e.getY()+")"); 17 }//JTextArea中有append(),而JTextFiled中只有setText() 18 public void mouseReleased(MouseEvent e) { 19 area.append(" 鼠标释放,位置:"+"("+e.getX()+")"+e.getY()+")"); 20 } 21 public void mouseEntered(MouseEvent e) { 22 if(e.getSource() instanceof JButton) { 23 area.append(" 鼠标进入按钮,位置:"+"("+e.getX()+","+e.getY()+")"); 24 } 25 if(e.getSource() instanceof JTextField) 26 area.append(" 鼠标进入文本框,位置:"+"("+e.getX()+","+e.getY()+")"); 27 if(e.getSource() instanceof JTextField) 28 area.append(" 鼠标进入窗口,位置:"+"("+e.getX()+","+e.getY()+")"); 29 } 30 public void mouseExited(MouseEvent e) { 31 area.append(" 鼠标退出,位置:"+"("+e.getX()+","+e.getY()+")"); 32 } 33 public void mouseClicked(MouseEvent e) { 34 if(e.getClickCount()>=2) 35 area.setText("鼠标连击,位置:"+"("+e.getX()+","+e.getY()+")"); 36 } 37 }
java中鼠标监听器的用法;
首先创建一个类来实现鼠标监听器接口,然后对鼠标监听器的各种函数进行重载,以实现相关的操作。
然后对于需要添加监听器的组件,注册监听器 ().addMouseListener( )其中第一个括号为组件,后面为鼠标监听器的一个实例化的对象。
同时要记得把各个组件和鼠标监听器添加到窗口中。