本帖最后由 沈艳南 于 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");
}
}
} |