黑马程序员技术交流社区
标题:
Dialog对话框添加addKeyListener(KeyListener l) 的问题
[打印本页]
作者:
燕国庆
时间:
2012-11-21 22:35
标题:
Dialog对话框添加addKeyListener(KeyListener l) 的问题
package cn.guoqing.day01;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class MyWindowDemo1 {
/**
* @param args
*/
public static void main(String[] args) {
new MyWindowDemo1();
}
private Frame f;
private TextField tf;
private Button b;
private TextArea ta;
private Dialog d;
private Label l;
private Button okB;
MyWindowDemo1(){
init();
}
public void init(){
f=new Frame("我的窗口");
tf=new TextField(25);
b=new Button("转到");
ta=new TextArea(30,35);
f.setBounds(300, 300, 500, 400);
f.setLayout(new FlowLayout());
f.add(tf);
f.add(b);
f.add(ta);
f.setVisible(true);
d=new Dialog(f,"错误对话框!",true);//当为ture时只有处理完对话框后才能继续操作后面的窗体。
l=new Label();
okB=new Button("确定");
d.setBounds(300, 350,400, 340);
d.setLayout(new FlowLayout());
d.add(l);
d.add(okB);
// d.setVisible(true);
myEvent();
}
//为窗体注册监听器,并在监听器的内部添加具体的执行语句。
public void myEvent(){
//当对话框出现关闭时使其设置为不可见
d.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
d.setVisible(false);
}
});
//紧挨着的下面的这一小段代码,为什么在执行的时候,按回车键时为什么Dialog对话框为什么还是可见的,而不是不可见的,不知道哪里有问题?
d.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
if(e.getKeyCode()==KeyEvent.VK_ENTER)
d.setVisible(false);
}
});
//当对话框出现关闭时使其设置为不可见
okB.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
d.setVisible(false);
}
});
//为Label标签添加键盘监听器,判断是否为回车键
tf.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
if(e.getKeyCode()==KeyEvent.VK_ENTER)
method();
}
});
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
//以b为事件源,把监听器注册到事件源上,并为监听器添加具体的操作语句。
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
method();
}
});
}
//将路径判断及其具体的操作方法封装成对象。
public void method(){
String pathname=tf.getText();
File f=new File(pathname);
if(f.exists()&&f.isDirectory()){
ta.setText("");
String[] names=f.list();
for(String name:names){
ta.append(name+"\r\n");//每输出一次换一下行
}
}
//当输入的路径不正确时进行的处理
else{
String infor="您输入的的路径"+pathname+"不正确,请重新输入!";
l.setText(infor);
d.setVisible(true);
}
//tf.setText(""); 路径执行完时自动清空
}
}
作者:
应文
时间:
2012-11-21 22:51
本帖最后由 应文 于 2012-11-21 22:55 编辑
//紧挨着的下面的这一小段代码,为什么在执行的时候,按回车键时为什么Dialog对话框为什么还是可见的,而不是不可见的,不知道哪里有问题?
//这里不是给Dialog添加键盘监听,改成给okB按钮添加键盘监听就可以了。
//d.addKeyListener(new KeyAdapter(){
okB.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
if(e.getKeyCode()==KeyEvent.VK_ENTER)
d.setVisible(false);
}
});
作者:
燕国庆
时间:
2012-11-22 10:36
应文 发表于 2012-11-21 22:51
//紧挨着的下面的这一小段代码,为什么在执行的时候,按回车键时为什么Dialog对话框为什么还是可见的,而不 ...
那在这里怎样才能给Dialog添加键盘缉拿听器?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2