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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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("");  路径执行完时自动清空
  }
}

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

2 个回复

倒序浏览
本帖最后由 应文 于 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);
    }
   });

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

回复 使用道具 举报
应文 发表于 2012-11-21 22:51
//紧挨着的下面的这一小段代码,为什么在执行的时候,按回车键时为什么Dialog对话框为什么还是可见的,而不 ...

那在这里怎样才能给Dialog添加键盘缉拿听器?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马