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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 沈艳南 中级黑马   /  2013-5-12 00:35  /  1600 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 沈艳南 于 2013-5-13 21:49 编辑

想要实现一个获取电脑中各个盘符下的文件名,  把文件名列在多行文本中,当输入的盘符不在时候有对话框提示,写了下面的程序 不知道问题出现在哪   请大神帮忙调试.

import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class MyFrame {
        public static void main(String[] args) {
                new FrameDemo();
        }
}
class FrameDemo{
        FrameDemo(){
                init();
        }
        /**/
        //建立窗体组件.
        private Frame f;
        //建立按钮组件.
        private Button but;
        //建立文本框组件.
        private TextField text;
        //建立多行文本组件.
        private TextArea ta;
        //建立对话框组件.
        private Dialog dlg;
        //建立标签组件.
        private Label dlb;
        //按钮
        private Button dbut;
        //建立方法对以上组件进行初始化.
        private void init(){
                f = new Frame("我的文件列表窗口");
                f.setLayout(null);
                f.setBounds(200, 200, 700, 500);
                //frame.setBackground(Color.GRAY);
                f.setVisible(true);
                //按钮初始化
                but = new Button("转到");
                f.add(but);
                but.setBounds(400,50,50,30);
                 myEvent();
                //初始化文本框.
                text = new TextField();
                text.setBounds(50, 50, 300, 30);
                f.add(text);
                //初始化多行文本.
                ta = new TextArea();
                f.add(ta);
                ta.setBounds(30, 100, 450, 230);
                //对话框初始化.
                dlg = new Dialog(f);
                dlb = new Label();
                dbut = new Button("确定");
                dlg.add(dlb);
                dlg.add(dbut);
                dlg.setLayout(null);
                dlg.setBounds(400,300,300,300);
                //dlg.setVisible(false);
        
                //初始化标签
               
                dlb.setBounds(80,50,200,100);
               
               
                //按钮初始化
               
               
                dbut.setBounds(50,50,30,30);
               
               
        }
        
        //事件的监听器.
         private void myEvent(){
                f.addWindowListener(new  WindowAdapter() {
                        public void windowClosing(WindowEvent e){
                                System.exit(0);
                        }
                        
                });
                //按钮的事件监听器.
               
                but.addMouseListener(new  MouseAdapter() {
                        public void mouseClicked(MouseEvent e){
                                //System.out.println("sss");
                                //通过getText获取到了文本中输入的内容.
                                myList();
                        }
                });
                //按钮确定事件.
                dbut.addMouseListener(new  MouseAdapter() {
                        public void mouseClicked(MouseEvent e){
                                text.setText("");
                                dlg.setVisible(false);
                        }
                });
                dbut.addMouseListener(new MouseAdapter() {
                           public void mouseClicked(MouseEvent e){
                                   text.setText("");
                                   dlg.setVisible(false);
                           }
                        });
                text.addKeyListener(new KeyAdapter() {
                        public void keyPressed(KeyEvent e){
                                //如何判断按下的是回车键,KeyEvent对象提供的方法, getKeyCode
                                if(e.getKeyCode()==KeyEvent.VK_ENTER){
                                        myList();
                                }
                        }
                });
                dlg.addWindowListener(new WindowAdapter() {
                        public void windowClosing (WindowEvent e){
                                text.setText("");
                                dlg.setVisible(false);
                        }
                });
               
               
        }
public void  myList(){
        String str_Text = text.getText();
        //System.out.println(str_Text);
        File f = new File(str_Text);
        String[] files = f.list();
        //System.out.println(files);
        if(!f.exists()){
                dlb.setText("您输入的路径不存在,请从新输入");
                dlg.setVisible(true);
               
                return;
        }
        ta.setText("");
        for(String s:files){
                //System.out.println(s);
                ta.append(s+"\r\n");
        }
}
        
        
}

评分

参与人数 1技术分 +1 收起 理由
刘胜寒 + 1

查看全部评分

3 个回复

倒序浏览
你的代码给你给了半天 发现太乱了   还不如在写一个  就又重新写了一个  发到这上面 排序有点问题  你将就着看一下
import java.awt.*;      //导包
import java.io.*;
import java.awt.event.*;

public class DemoDriSwap{            
private Frame f = null;
private Button b = null;
private TextArea ta1 = null;
private TextField tf = null;

private Label l = null;
private Dialog dl = null;
private Button b1 = null;
//private  ta2 = null;
DemoDriSwap(){
  init();   
}
  //下面是初始化的内容
public void init(){
  f = new Frame("my frame");
  b = new Button("转到");
  ta1 = new TextArea();
  tf = new TextField();
  l = new Label ();
  dl = new Dialog(f,"提示信息",true);
  b1 = new Button("确定");
  f.setLayout(new FlowLayout());
  f.setBounds(300,200,500,400);
  dl.setBounds(400,300,300,100);
  dl.setLayout(new FlowLayout());
  f.add(tf);
  f.add(b);
  f.add(ta1);
  tf.setColumns(40);
  ta1.setColumns(55);
  ta1.setRows(20);
  f.setVisible(true);
  
  enent();
}

public void enent(){
  
  f.addWindowListener(new WindowAdapter(){
   public void windowClosing(WindowEvent e){
    System.exit(0);
   }
  });
  
  dl.addWindowListener(new WindowAdapter(){
   public void windowClosing(WindowEvent e){
    dl.setVisible(false);
   }
  });
  
  b1.addActionListener(new ActionListener(){
   
   public void actionPerformed(ActionEvent e){
    System.exit(0);
   }
  });
  
  
  b.addActionListener(new ActionListener(){
    String s = null;
    //ta.setText("");
    public  void actionPerformed(ActionEvent e){
     s = tf.getText();
     ta1.setText("");
     File fipath = new File(s);
     if( fipath.exists()&& fipath.isDirectory()){
      String [] array = fipath.list();
      for (String a: array){
       ta1.append(a+"\r\n");
      }
     }else{
      l.setText("您输入的"+s+"路径有误,请检查后重新输入。");
      dl.add(l);
      dl.add(b1);
      dl.setVisible(true);
     }
     tf.setText("");
    }
   });
}

public static void main(String[]args){
  new DemoDriSwap();
}
}

评分

参与人数 1技术分 +1 收起 理由
刘胜寒 + 1

查看全部评分

回复 使用道具 举报
花开花落总相似 发表于 2013-5-12 06:52
你的代码给你给了半天 发现太乱了   还不如在写一个  就又重新写了一个  发到这上面 排序有点问题  你将就 ...

谢谢啊 你给的答案我看懂了 看来我是应该注意一下 是有点乱  
回复 使用道具 举报
如果问题未解决,请继续追问,如果问题解决了,请点击你的帖子下面的"编辑"重新编辑帖子,将分类改为“已解决”,谢谢合作!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马