创建图形化界面的基本流程:
1.先创建窗体
2.对窗体进行基本设置
比如:大小,显示区域,是否可见等
3.创建组件
4.对组件进行基本设置
比如:大小,初始值等
5.将组件添加到相应窗体中
设置监听的方法
1.事件源
2.事件
3.监听器
4.处理方式
前三个都是已经被java封装好了的,我们只需要拿来用即可,我们要做的事情就是,写处理方式
需求:
1.如图,设计一个界面如上图的程序。
2.功能:
1.在文本框里输入文件夹路径,点转到会在文本区域显示该文件夹里的文件和文件夹名称
2.当输错后,会有对话框提示输入错误
3.直接按回车也可以显示文件夹里的内容
代码实现:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
class FrameDemo
{
public static void main(String[] args)
{
new myWindow();
}
}
class myWindow
{
private Frame f;
private TextField tf;
private Button but;
private TextArea ta;
private Dialog d;//此处一般是写在出现错误的相关方法里
private Label lab;
private Button okBut;
myWindow()
{
init();
}
public void init()
{
f=new Frame("My Frame");
//同时设置显示区域和窗体大小
f.setBounds(400,500,600,500);
//设置窗体布局
f.setLayout(new FlowLayout());
//创建文本框
tf=new TextField(20);
//创建按钮
but=new Button("转到");
//创建文本区域
ta=new TextArea(30,60);
//添加组件到窗体
f.add(tf);
f.add(but);
f.add(ta);
//创建对话框
d=new Dialog(f,"提示信息:",true);
d.setBounds(450,650,300,100);
d.setLayout(new FlowLayout());
//创建lable标签
lab=new Label();
//创建对话框按钮
okBut=new Button("确定");
d.add(lab);
d.add(okBut);
//运行监听事件
myEvent();
//设置窗体可见
f.setVisible(true);
}
public void myEvent()
{
//窗体关闭
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//转到按钮点击事件
but.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
showDir();
}
});
okBut.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
d.setVisible(false);
}
});
//为文本框添加键盘监听事件
tf.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==KeyEvent.VK_ENTER)
{
showDir();
}
}
});
}
public void showDir()
{
String DirPath=tf.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
{
lab.setText("您输入的目录:"+DirPath+"是错误的,请重新输入!");
d.setVisible(true);
}
}
}