zoukankan      html  css  js  c++  java
  • GUI编程(五)-----事件监听

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

    动作监听器

    代码如下:

     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             @Override
    10             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             @Override
    15             public void mousePressed(MouseEvent e) {
    16                 System.out.println("鼠标按下..");
    17             }
    18             
    19             @Override
    20             public void mouseExited(MouseEvent e) {
    21                 System.out.println("鼠标移出...");
    22             }
    23             
    24             @Override
    25             public void mouseEntered(MouseEvent e) {
    26                 System.out.println("鼠标进入...");
    27             }
    28             
    29             @Override
    30             public void mouseClicked(MouseEvent e) {
    31                 System.out.println("鼠标单击..");
    32             }
    33         });
    34         
    35         添加鼠标监听器的时候我只使用 到单击事件,但是目前要我实现所有的方法??
    36         解决方案: 适配器。适配器是实现了MouseListener方法的所有方法,但是实现的方法全部都是空实现。
    37         */
    38         
    39         button.addMouseListener(new MouseAdapter() {
    40 
    41             @Override
    42             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             @Override
    14             public void keyReleased(KeyEvent e) {
    15 //                System.out.println("释放某个键");
    16             }
    17             
    18             @Override
    19             public void keyPressed(KeyEvent e) {
    20                 System.out.println("按下某个键..");
    21             }
    22         });*/
    23         button.addKeyListener(new KeyAdapter() {
    24             @Override
    25             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             @Override
    29             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             @Override
    41             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()+"
    ");
    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
  • 相关阅读:
    MOSS007 服务器的配置
    服务器日志查询代码
    MOSS2007页面UI定制(无代码上手)
    远程服务器监控程序浅谈
    CoreChart安装使用分享(附 安装文件CoreChart.wsp)
    Tree WebPart的介绍
    思科金牌、银牌代理商名录
    如何让你的移动硬盘或者U盘变得百毒不侵呢?
    CCNA网络工程师面试题
    ICMP报文的各种格式和种类
  • 原文地址:https://www.cnblogs.com/nicker/p/6268936.html
Copyright © 2011-2022 走看看