博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GUI编程(五)-----事件监听
阅读量:5259 次
发布时间:2019-06-14

本文共 6805 字,大约阅读时间需要 22 分钟。

事件监听器主要包含:动作事件监听器、鼠标事件监听器和键盘事件监听器三种。

动作监听器

代码如下:

1 public static void main(String[] args) { 2         JFrame frame = new JFrame("窗体"); 3         JButton button = new JButton("点我啊"); 4         frame.add(button); 5         //给按钮添加动作监听器     动作时间监听器对于鼠标点击以及空格键都会起作用的。 6         button.addActionListener(new ActionListener() { 7              8             //当按钮被点击的时候,就会调用actionPerformed的方法。  9             @Override10             public void actionPerformed(ActionEvent e) {  // ActionEvent 当前按钮被点击的时候,jvm就会把对应 的时间传递ActionEvent,并且调用actionPerformed方法。11                 //System.out.println("哎呀,被点了...");12                 JButton button =(JButton) e.getSource(); //getSource() 获取到事件源13                 if(button.getText().equals("点我啊")){14                     button.setText("点他吧");15                 }else{16                     button.setText("点我啊");17                 }18                 19             }20         });21         frame.setSize(200, 200);22         frame.setLocationRelativeTo(null);23         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);24         frame.setVisible(true);25     }
View Code

鼠标事件监听器

代码如下:

1 public static void main(String[] args) { 2         JFrame frame = new JFrame("鼠标事件监听器"); 3         JButton button = new JButton("按钮"); 4         frame.add(button); 5         //给按钮添加鼠标事件监听器 6         /*button.addMouseListener(new MouseListener() { 7              8             @Override 9             public void mouseReleased(MouseEvent e) {10                 System.out.println("鼠标松开...");11                 12             }13             14             @Override15             public void mousePressed(MouseEvent e) {16                 System.out.println("鼠标按下..");17             }18             19             @Override20             public void mouseExited(MouseEvent e) {21                 System.out.println("鼠标移出...");22             }23             24             @Override25             public void mouseEntered(MouseEvent e) {26                 System.out.println("鼠标进入...");27             }28             29             @Override30             public void mouseClicked(MouseEvent e) {31                 System.out.println("鼠标单击..");32             }33         });34         35         添加鼠标监听器的时候我只使用 到单击事件,但是目前要我实现所有的方法??36         解决方案: 适配器。适配器是实现了MouseListener方法的所有方法,但是实现的方法全部都是空实现。37         */38         39         button.addMouseListener(new MouseAdapter() {40 41             @Override42             public void mouseClicked(MouseEvent e) {43 //                System.out.println("鼠标单击了..");44                 if(e.getClickCount()==2){45                     System.out.println("双击了..");46                 }47                 48             }49             50             51         });52         frame.setSize(200, 200);53         frame.setLocationRelativeTo(null);54         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);55         frame.setVisible(true);56     }
View Code

键盘事件监听器

代码如下:

1 public static void main(String[] args) { 2         JFrame frame = new JFrame("键盘事件监听器"); 3         JButton button = new JButton("按钮"); 4         frame.add(button); 5         //给按钮添加键盘事件监听器 6         /*button.addKeyListener(new KeyListener() { 7              8             @Override 9             public void keyTyped(KeyEvent e) {10                 System.out.println("键入某个键");11             }12             13             @Override14             public void keyReleased(KeyEvent e) {15 //                System.out.println("释放某个键");16             }17             18             @Override19             public void keyPressed(KeyEvent e) {20                 System.out.println("按下某个键..");21             }22         });*/23         button.addKeyListener(new KeyAdapter() {24             @Override25             public void keyPressed(KeyEvent e) {26 //                System.out.println("按下的字符:"+e.getKeyChar());27                 //System.out.println("获取键对应的数值:"+ e.getKeyCode());28                 int code = e.getKeyCode();29                 switch (code) {30                 case 38:31                     System.out.println("上");32                     break;33                 case 40:34                     System.out.println("下");35                     break;36                 case 37:37                     System.out.println("左");38                     break;39                 case 39:40                     System.out.println("右");41                     break;42                 default:43                     break;44                 }45             }46         });47         frame.setSize(200, 200);48         frame.setLocationRelativeTo(null);49         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);50         frame.setVisible(true);51     }
View Code

实战

文件搜索器

代码如下:

1 public class FileSearch { 2      3     JFrame frame = new JFrame("文件搜索器"); 4      5     JPanel panel = new JPanel(); 6      7     JTextField field = new JTextField("请输入目录名...",15); 8      9     JButton button = new JButton("搜索");10     11     JTextArea area = new JTextArea(15,15);12     13     //滚动条14 //    ScrollPane bar = new ScrollPane();15     JScrollPane bar = new JScrollPane(area);16     17     18     public void init(){19         //先把area添加 到滚动条上。20 //        bar.add(area);21         //先把组件添加到panel上22         panel.add(field);23         panel.add(button);24         25         //给输入框添加事件26         field.addMouseListener(new MouseAdapter() {27 28             @Override29             public void mouseClicked(MouseEvent e) {30                 JTextField field =  (JTextField) e.getSource();31                 if(field.getText().equals("请输入目录名...")){32                     field.setText("");33                 }34             }35         });36         37         //给按钮添加事件监听器38         button.addActionListener(new ActionListener() {39             40             @Override41             public void actionPerformed(ActionEvent e) {42                 //获取输入框输入的路径43                 String path = field.getText();44                 //使用输入的路径构建一个FIle对象45                 File dir = new File(path);46                 //找到目录下的所有子 文件47                 File[] files = dir.listFiles();48                 for(File file : files){ // 1208Project  资料49                     area.setText(area.getText()+ file.getName()+"\r\n");50                 }51             }52         });53         54         55         56         //把面板添加到frame上57         frame.add(panel,BorderLayout.NORTH);58         frame.add(bar);        59         frame.setSize(300, 400);60         frame.setLocationRelativeTo(null);61         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);62         frame.setVisible(true);63     }64     65     public static void main(String[] args) {66         new FileSearch().init();67         68     }69 }
View Code

 

转载于:https://www.cnblogs.com/nicker/p/6268936.html

你可能感兴趣的文章
Django与Ajax
查看>>
再做一题,2013-6-16更新
查看>>
Oracle_Statspack性能诊断工具
查看>>
面向对象(封装、继承、多态、抽象)
查看>>
Memcached数据库缓存
查看>>
转获取sql维护的表关系
查看>>
网络基础——TCP/IP五层模型
查看>>
Java 序列化
查看>>
Java 时间处理实例
查看>>
Java 多线程编程
查看>>
Java 文件操作
查看>>
Java 数组实例
查看>>
Java 方法实例
查看>>
Java 异常处理
查看>>
Java 目录
查看>>
Java 数据结构
查看>>
MYSQL5.7.24编译安装
查看>>
mysql启动过程
查看>>
ORACLE的启动过程
查看>>
ORACLE 清理SYSAUX表空间
查看>>