黑马程序员技术交流社区

标题: file类结合awt包的问题 [打印本页]

作者: 魏征    时间: 2012-5-8 21:20
标题: file类结合awt包的问题
本帖最后由 魏征 于 2012-5-8 23:07 编辑

这是一个图形化界面,在文本框tf总输入路径,点击“转到”,ta文本框总显示其路径下的文件及文件夹,当我输入c:\时,结果正常,但当我输入c:时显示的结果为C:\Documents and Settings\Administrator路径下的文件及文件夹,同样不解的还有输入d:时显示的是此class文件所在的路径下的文件及文件夹(此class文件在d盘中)。但是其他盘符如e:和e:\输入点击“转到”结果相同,这是为什么
请高手指教。

import java.awt.*;
import java.awt.event.*;
import java.io.*;
class myWindowDemo
{
private Frame f;
private Button b;
private TextField tf;
private TextArea ta;
myWindowDemo()
{
  init();
}
public void init()
{
  f=new Frame("my Frame");
  f.setBounds(300,200,500,400);
  f.setLayout(new FlowLayout());
  tf=new TextField(25);
  ta=new TextArea(30,40);
  b=new Button("转到");
  f.add(tf);
  f.add(b);
  f.add(ta);
  myEvent();
  f.setVisible(true);
}
public void myEvent()
{
  b.addActionListener(new ActionListener()
  {
   public void actionPerformed(ActionEvent e)
   {
    ta.setText("");
    String s=tf.getText();
    File file=new File(s);
    if (file.exists()&&file.isDirectory())
    {
     String[]fi=file.list();
     for (String str:fi)
     {
      ta.append(str+"\r\n");
     }
    }
    else if(file.isFile()&&file.exists())
     {ta.setText("是文件,请输入路径");
     }
    else
     ta.setText("非法路径");
   
      }
  });
  f.addWindowListener(new WindowAdapter()
  {
   public void windowClosing(WindowEvent e)
   {
    System.exit(0);
   }
  });
  
  
}
public static void main(String[] args)
{
  new myWindowDemo();
}
}


作者: 云惟桉    时间: 2012-5-8 23:34
最初在设置环境变量的时候,C:\Documents and Settings\Administrator应该就是默认在系统变量里的路径吧。
然后你自己的D:盘存放的既然是class文件,说明你开始的时候也把这个路径设在环境变量里了吧。
可能不加 \ 的时候,jvm会自动去寻找环境变量里当前盘下的路径值,因为GUI毕竟有些用到了系统的资源。

我理解是这样的。希望能帮到楼主。有错也请指正。
作者: 魏征    时间: 2012-5-9 13:05
哦明白了谢谢楼上的




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