import java.awt.*;
import java.awt.event.*;
import java.io.*;//包引入
class win//窗口类
{
private Frame a;//窗口
private Button but;//按钮
private TextField t;//文本框
private TextArea ta;//文本区
private Dialog d;//子窗口
private Label lab;//标签
private Button okbut;
win()
{init();}
public void init()//初始化
{
a=new Frame("window");
a.setBounds(0,0,640,480);
a.setLayout(new FlowLayout());
t=new TextField(25);
ta=new TextArea(20,60);
but=new Button("确定");
a.add(t);
a.add(but);
a.add(ta);
myevent();
a.setVisible(true);
d=new Dialog(a,"提示信息",true);
d.setLayout(new FlowLayout());
lab=new Label();
okbut=new Button("确定");
d.setBounds(0,0,150,150);
d.add(lab);
d.add(okbut);
}
private void myevent()//事件监听
{
a.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{System.exit(0);}
});//窗口关闭
but.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
showdir();
}
});//为按钮添加事件。当按下按钮时,在文本区写入目录
t.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==KeyEvent.VK_ENTER)//键盘事件添加。当按下enter时列出目录
{showdir();}
}
});
}
private void showdir()
{
String dirPath=t.getText();
File dir=new File(dirPath);
if(dir.exists()&&dir.isDirectory())
{
ta.setText("");
String []names=dir.list();
for(String name:names)
{ta.append(name+"\r\n");}
}
else
{
String info="您输入的信息有误"+dirPath+"请重新输入";
lab.setText(info);
d.setVisible(false);}
}
}
class chazhao
{
public static void main(String[] args)
{
new win();
}
}
该代码仍可继续优化。
问题:在许多书上看到JFrame的类。查阅下是Frame的子类。但是本人还是习惯于用Frame创建窗口。
一些方法还是不太清楚