黑马程序员技术交流社区
标题:
代码中出现了一个问题,不明白
[打印本页]
作者:
crazy_primitive
时间:
2013-7-30 15:13
标题:
代码中出现了一个问题,不明白
本帖最后由 杨兴庭 于 2013-7-30 23:07 编辑
public class DirectoryDemo {
Frame fr;
TextField tf;
Button but;
TextArea ta;
DirectoryDemo(){
addWindowProperty();
}
public void addWindowProperty(){
fr = new Frame("目录");
tf = new TextField(50);
but = new Button(" 转到 ");
ta = new TextArea(25,58);
fr.setLayout(new FlowLayout());
fr.setBounds(300, 100, 600, 500);
fr.add(tf);
fr.add(but);
fr.add(ta);
fr.setVisible(true);
but.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ta.setText("");
String dirpath = tf.getText();
File dir = new File(dirpath);
if(dir.exists() && dir.isDirectory()){
String[] strs = dir.list();
for(String str : strs){
ta.append(str+"\r\n");
}
ta.setText("目录不存在!");//每次程序执行结果都是“目标不存在”?我想把它做的友好一点儿,可是加了这行代码了每次都只打印这句话,如果把它去掉了,就没有问题了,是因为异常处理么?
}
}
});
fr.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String[] args) {
new DirectoryDemo();
}
}
复制代码
作者:
哪颗最亮的星星
时间:
2013-7-30 16:57
哪里因为你有把TextArea的值从新置为"目录不存在了"如果不存在,你可以让它弹出一个对话框
作者:
crazy_primitive
时间:
2013-7-30 17:18
好吧,这个错误好像挺低级的。。。。。。。
作者:
杨增坤
时间:
2013-7-30 17:25
你判断目录不存在的话,弹出一也对话框,也成一个封装类比较好,例如:
public class MyDialog {
private Frame frame;//框架
private Dialog dialog;//对话框
private Label info;//显示内容的
private Button OK;//确定按钮
private String path;//路径
public MyDialog(Frame frame,String path){
this.frame=frame;
this.path=path;
MyFrame();
}
public void MyFrame(){//dialog上的组件的集合
dialog =new Dialog(frame,"提示信息",true);
dialog.setLayout(new FlowLayout());//设置布局为流水式
//dialog.setBounds(300, 100, 200, 150);
dialog.setLocation(300, 200);
info =new Label();
info.setText("您输入的路径:"+path+"不正确,请重新输入");
String textPath=info.getText();
byte [] text=textPath.getBytes();
dialog.setSize(text.length*7,100);
dialog.add(info);
OK =new Button("确定");
dialog.add(OK);
MyEvent();
dialog.setVisible(true);
}
public void MyEvent(){//监听器的触发事件
dialog.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
dialog.setVisible(false);
}
});
OK.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
dialog.setVisible(false);
}
});
}
}
在判断的时候实例此对象就可以 newMyDialog(框架对象,获取的路径);
希望对你有帮助!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2