黑马程序员技术交流社区

标题: 文件列表中遇到的问题 [打印本页]

作者: ﹑淼    时间: 2014-8-22 23:06
标题: 文件列表中遇到的问题
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import java.io.File;
  4. public class FileList {
  5.         //定义窗口
  6.         private Frame frame;
  7.         //定义单行文本
  8.         private TextField frame_tf;
  9.         // 跳转按钮
  10.         private Button frame_but;
  11.         //        多行文本
  12.         private TextArea frame_ta;
  13.         //        对话框
  14.         private Dialog dialog ;
  15.         //对话框的确定按钮
  16.         private Button dialog_but;
  17. //        对话框上的文本标签
  18.         private Label dialog_lbl;
  19. //        获取屏幕分辨率
  20.         private static final int WIDTH=Toolkit.getDefaultToolkit().getScreenSize().width;
  21.         private static final int HEIGHT=Toolkit.getDefaultToolkit().getScreenSize().height;
  22.        
  23.        
  24.         //文件列表的构造函数
  25.         public FileList(){
  26. //                初始化的函数
  27.                 init();
  28.         }
  29.         private void init(){
  30. //                初始化窗口
  31.                 frame=new Frame("文件列表");
  32. //                设置窗口的位置和大小
  33.                 frame.setBounds((WIDTH-600)/2, (HEIGHT-500)/2, 600, 500);
  34. //                设置背景
  35.                 frame.setBackground(new Color(202,232,237));
  36. //        清空布局
  37.                 frame.setLayout(null);
  38. //                显示窗口
  39.                 frame.setVisible(true);
  40.                
  41. //                初始化化单行文本
  42.                 frame_tf=new TextField();
  43. //                设置单行文本的位置和大小
  44.                 frame_tf.setBounds(20,40, 400, 30);
  45. //                将单行文本添加进窗口
  46.                 frame.add(frame_tf);
  47.                
  48. //                初始化跳转按钮
  49.                 frame_but=new Button("跳转");
  50.                 frame_but.setBounds(440,40 ,70 ,30 );
  51.                 frame.add(frame_but);
  52.                
  53. //                初始化多行文本
  54.                 frame_ta=new TextArea();
  55.                 frame_ta.setBounds(20,85, 550, 400);
  56.                 frame.add(frame_ta);
  57.                
  58. //                初始化对话框
  59.                 dialog=new Dialog(frame,"错误路径",true);
  60.                 dialog.setBounds((WIDTH-600)/2, (HEIGHT-150)/2, 600, 150);
  61.                 dialog.setLayout(null);
  62.                
  63. //                初始化按钮
  64.                 dialog_but=new Button("确定");
  65.                 dialog_but.setBounds(320, 90, 50, 25);
  66.                 dialog.add(dialog_but);
  67.                
  68. //                处理事件
  69.                 event();
  70.         }
  71.        
  72. //        事件的处理
  73.         private void event(){
  74. //        窗口的关闭
  75.                 frame.addWindowListener(new WindowAdapter(){
  76.                         public void windowClosing(WindowEvent e){
  77.                                 System.exit(0);
  78.                         }
  79.                 });
  80.                
  81. //                按钮跳转
  82.                 frame_but.addMouseListener(new MouseAdapter() {
  83.                         public void mouseClicked(MouseEvent e){
  84.                                 getDir();
  85.                         }
  86.                 });
  87.                
  88. //                输入文本的键盘事件
  89.                 frame_tf.addKeyListener(new KeyAdapter() {
  90.                         public void keyPressed(KeyEvent e) {
  91. //                        判断按下的是不是回车键
  92.                                 int code=e.getKeyCode();
  93.                                 if(code==KeyEvent.VK_ENTER)
  94. //                                        遍历目录
  95.                                         getDir();
  96.                         }
  97.                 });
  98.                
  99. //                定义对话框的关闭按钮
  100.                 dialog.addWindowListener(new WindowAdapter(){
  101.                         public void windowClosing(WindowEvent e){
  102.                                 dialog.setVisible(false);
  103.                         }
  104.                 });
  105.                
  106. //                定义对话框上的确定按钮
  107.                 dialog_but.addMouseListener(new MouseAdapter(){
  108.                         public void mouseClicked(MouseEvent e){
  109.                                 dialog.setVisible(false);
  110.                         }
  111.                 });
  112.         }
  113.        
  114. //遍历目录
  115.         public void getDir(){
  116. //                获取目录的路径
  117.                 String path=frame_tf.getText();
  118.                 if(path==null || "".equals(path))
  119.                                 return ;
  120. //                将目录路径封装到File类中
  121.                 File file=new File(path);
  122. //                判断路径是否存在
  123.                 if(!file.exists()){
  124. //                        初始化button
  125.                         dialog_lbl=new Label ("输入的路径:"+path+",有误");
  126.                         dialog_lbl.setBounds(120, 50, 300, 25);
  127.                         dialog.add(dialog_lbl);
  128.                         dialog.setVisible(true);
  129.                 }else{
  130. //                        遍历目录
  131. //                        追加到多行文本的时候,清空多行文本
  132.                         frame_ta.setText("");
  133. //                        返回封装路径下的全路径
  134.                         File[] files=file.listFiles();
  135.                         for(File f:files){
  136.                                 frame_ta.append(f+"\r\n");
  137.                         }
  138.                 }
  139.                
  140.         }
  141. }
复制代码
  1. public class FileListTest {
  2.         public static  void main (String[] args){
  3.                 new FileList();
  4.         }
  5. }
复制代码

作者: ﹑淼    时间: 2014-8-22 23:08
我多次输入错误路径,为甚么弹出的对话框中的内容不变




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2