Java的GUI学习十(弹出对话框Dialog)
我爱楼主真的哈哈哈哈学习来自 http://www.cnblogs.com/xingyunblog/p/3870207.html
import java.awt.Button;
import java.awt.Dialog;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
class GUI9 {
private Frame f;
private TextField tf;
private Button but;
private TextArea ta;
private Dialog d;
private Label lab;
private Button okbut;
GUI9(){
init();
}
public void init()
{
f = new Frame("Galesaur");//创建窗体对象
f.setBounds(300,100,600,500);//设置窗体位置和大小
f.setLayout(new FlowLayout()); //设置窗体布局为流式布局
f.setVisible(true); //设置窗体可见
tf = new TextField(60);//创建单行文本对象60长度大小字符
but = new Button("转到"); //创建按钮对象
ta = new TextArea(25,70);//创建多行文本对象25行 70列
d = new Dialog(f,"提示信息-self",true); //弹出的对话框
d.setBounds(400,200,350,150);
d.setLayout(new FlowLayout()); //设置弹出的对话框的布局为流式布局
lab = new Label(); //创建lab标签 填写提示内容
okbut = new Button("确定");//创建确定按钮
d.add(lab);
d.add(okbut);
f.add(tf); //单行文本添加到窗体上
f.add(but);//按钮添加到窗体上
f.add(ta); //多行文本添加到窗体上
myEvent();//加载事件处理
}
private void myEvent() {
//ok按钮监听器
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()功能函数
showDir();//调用功能函数
}
});
// 对话框监听器
d.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
d.setVisible(false);//设置对话框不可见
}
});
//按钮事件监听器
but.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) {
showDir(); //按下转到之后也是执行showDir()
}
});
//窗体关闭监听器
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
private void showDir() {
// TODO Auto-generated method stub
String dirPath = tf.getText();//获取单行文本内容
File dir = new File(dirPath);//将字符串dirpath封装撑文件
//如果稳健存在,而且是个目录执行下列操作
if(dir.exists() && dir.isDirectory())
{
ta.setText(null);//没打开一个目录前清空多行文本内容
String[] names = dir.list();//文件目录列表存放在字符串数组中
for(String name:names)
ta.append(name + "\r\n"); //追加文本内容并换行
}else
{
String info = "您输入的路径" + dirPath + "是错误的,请重新输入";
lab.setText(info); //显示错误文本提示信息
d.setVisible(true); //显示对话框可见
}
}
public static void main(String[] args){
new GUI9();
}
}
图: