A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵崇友 中级黑马   /  2013-5-3 22:36  /  1895 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 赵崇友 于 2013-5-5 21:35 编辑
  1. <p>import java.awt.Button;
  2. import java.awt.Dialog;
  3. import java.awt.FlowLayout;
  4. import java.awt.Frame;
  5. import java.awt.Label;
  6. import java.awt.TextArea;
  7. import java.awt.TextField;
  8. import java.awt.event.ActionEvent;
  9. import java.awt.event.ActionListener;
  10. import java.awt.event.KeyAdapter;
  11. import java.awt.event.KeyEvent;
  12. import java.awt.event.WindowAdapter;
  13. import java.awt.event.WindowEvent;
  14. import java.io.File;</p><p>public class MouseAndKeyAction {</p><p> /**
  15.   * @param args
  16.   */
  17. @SuppressWarnings("unused")
  18. public static void main(String[] args) {
  19.   // TODO Auto-generated method stub
  20.   MyFrame mf=new MyFrame();
  21. }</p><p>}
  22. class MyFrame {
  23. private Frame f;
  24. private Button b,okbutton;
  25. private TextField tf;
  26. private TextArea ta;
  27. private Dialog dia;
  28. private Label lab;
  29. MyFrame(){
  30.   inital();
  31. }
  32. private void inital(){
  33.   f=new Frame("file");
  34.   b=new Button("转到");
  35.   tf=new TextField(40);
  36.   ta=new TextArea(20,48);
  37.   f.setLayout(new FlowLayout());
  38.   f.setBounds(500, 100, 500, 500);
  39.   dia=new Dialog(f,"提示信息",true);
  40.   okbutton=new Button("确定");
  41.   dia.setBounds(600,350,300,150);
  42.   dia.setLayout(new FlowLayout());
  43.   lab=new Label();
  44.   dia.add(lab);
  45.   dia.add(okbutton);
  46.   f.add(tf);
  47.   f.add(b);
  48.   f.add(ta);
  49.   myEvent();
  50.   f.setVisible(true);
  51.   
  52. }
  53. private void myEvent(){
  54.   f.addWindowListener(new WindowAdapter() {
  55.    public void windowClosing(WindowEvent e){
  56.     System.exit(0);
  57.    }
  58.   });
  59.   b.addActionListener(new ActionListener() {
  60.    
  61.    @Override
  62.    public void actionPerformed(ActionEvent e) {
  63.     // TODO Auto-generated method stub
  64.     showDir();
  65.    
  66.    }
  67.   });
  68.   dia.addWindowListener(new WindowAdapter() {
  69.    public void windowClosing(WindowEvent e){
  70.     dia.setVisible(false);
  71.    }
  72.   });
  73.   okbutton.addActionListener(new ActionListener() {
  74.    
  75.    @Override
  76.    public void actionPerformed(ActionEvent e) {
  77.     // TODO Auto-generated method stub
  78.     dia.setVisible(false);
  79.    }
  80.   });
  81.   tf.addKeyListener(new KeyAdapter() {
  82.    @SuppressWarnings("unused")
  83.    public void Keypressed(KeyEvent e){
  84.     if(e.getKeyCode()==KeyEvent.VK_ENTER){
  85.      showDir();
  86.     }
  87.    }
  88.   });
  89. }
  90. private void showDir(){
  91.   String path=tf.getText();
  92.   File file=new File(path);
  93.   ta.setText("");
  94.   if (file.exists()&&file.isDirectory()){
  95.    String []names=file.list();
  96.    for(String name:names){
  97.     ta.append(name+"\r\n");
  98.    }
  99.   }
  100.   else
  101.   {
  102.    String erroinfo="找不文件:"+path+":路径不存在"+";请重新输入路径";
  103.    lab.setText(erroinfo);
  104.    dia.setVisible(true);
  105.   }
  106. }
  107. }</p>
复制代码
如何实现:按ENTER键列出目录呢?
我添加了按键监听咋按enter键没有反应呢?



file.png (3.79 KB, 下载次数: 0)

file.png

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

13 个回复

倒序浏览
尹桥印 发表于 2013-5-3 22:41
不会
你可以把那个路径输入框弄一个按键监听

现在加了一个,没有反应,您给看看呗
回复 使用道具 举报
尹桥印 发表于 2013-5-3 23:27
你那个肯定不行了,这样写。你稍等。

在等着呢啊…………还是没想明白哪出错了!!
回复 使用道具 举报
尹桥印 发表于 2013-5-3 23:27
这个应该能行了。你试试

还是不行呀!!:'(
回复 使用道具 举报
尹桥印 发表于 2013-5-3 23:41
那我就真不知道了。。。我觉得TextField里面应该用getKeyChar(),而不应该用getKeyCode()
如果这个不行。 ...

等大神来解答吧!!
回复 使用道具 举报
没人帮忙看看吗??{:soso_e109:}
回复 使用道具 举报
package cn.heima.test;

import java.awt.Button;
import java.awt.Dialog;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;

public class MouseAndKeyAction {
        /**
         * @param args
         */
        @SuppressWarnings("unused")
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                MyFrame mf = new MyFrame();
        }
}

class MyFrame {
        private Frame f;
        private Button goButton, okbutton;
        private TextField inputTextField;
        private TextArea ta;
        private Dialog dia;
        private Label lab;

        MyFrame() {
                inital();
        }

        private void inital() {
                f = new Frame("file");
                goButton = new Button("转到");
                inputTextField = new TextField(40);
                ta = new TextArea(20, 48);
                f.setLayout(new FlowLayout());
                f.setBounds(500, 100, 500, 500);
                dia = new Dialog(f, "提示信息", true);
                okbutton = new Button("确定");
                dia.setBounds(600, 350, 300, 150);
                dia.setLayout(new FlowLayout());
                lab = new Label();
                dia.add(lab);
                dia.add(okbutton);
                f.add(inputTextField);
                f.add(goButton);
                f.add(ta);
                myEvent();
                f.setVisible(true);

        }

        private void myEvent() {
                f.addWindowListener(new WindowAdapter() {
                        public void windowClosing(WindowEvent e) {
                                System.exit(0);
                        }
                });
                inputTextField.addKeyListener(new KeyListener() {

                        @Override
                        public void keyTyped(KeyEvent e) {
                               

                        }

                        @Override
                        public void keyReleased(KeyEvent e) { //当输入ENTYER时 在这个监听里面进行拦截,童鞋请注意两点 一个是控件的命名要规范点,比方说功能加控件名,二是对事件要有了解
                                if (e.getKeyCode() == KeyEvent.VK_ENTER) {
                                        showDir();
                                }
                        }

                        @Override
                        public void keyPressed(KeyEvent e) {
                        }
                });
                goButton.addActionListener(new ActionListener() {

                        @Override
                        public void actionPerformed(ActionEvent e) {
                                // TODO Auto-generated method stub
                                showDir();

                        }
                });
                dia.addWindowListener(new WindowAdapter() {
                        public void windowClosing(WindowEvent e) {
                                dia.setVisible(false);
                        }
                });
                okbutton.addActionListener(new ActionListener() {

                        @Override
                        public void actionPerformed(ActionEvent e) {
                                // TODO Auto-generated method stub
                                dia.setVisible(false);
                        }
                });
        }

        private void showDir() {
                String path = inputTextField.getText();
                File file = new File(path);
                ta.setText("");
                if (file.exists() && file.isDirectory()) {
                        String[] names = file.list();
                        for (String name : names) {
                                ta.append(name + "\r\n");
                        }
                } else {
                        String erroinfo = "找不文件:" + path + ":路径不存在" + ";请重新输入路径";
                        lab.setText(erroinfo);
                        dia.setVisible(true);
                }
        }
}

回复 使用道具 举报
没有注释的代码.老毕说过是你懂得
回复 使用道具 举报
要将输入标记放在输入框吧,监听的是文本输入框,你注意下
回复 使用道具 举报
谢谢大家了!!问题找到了!!!是我的keyPressed首字母写成大写的了!!{:soso_e109:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马