JAVA--GUI:Dialog组件
程序员文章站
2022-03-26 14:40:19
...
需求
在文本框输入目录,点击"转到"按钮,将该目录中的文件与文件夹名称列在下面的文本区域中。如果输入有误,弹出相应错误提示信息。
使用方法
TextField(int columns):构造具有指定列数的新空文本字段。
TextArea(int rows, int columns):构造一个新文本区,该文本区具有指定的行数和列数,并将空字符串作为文本。
String getText():返回此文本组件表示的文本。
void setText(String t):将此文本组件显示的文本设置为指定文本。
void append(String str):将给定文本追加到文本区的当前文本。
Dialog(Frame owner, String title, boolean modal):构造一个最初不可见的 Dialog,它带有指定的所有者 Frame、标题和模式。
参数:
owner - dialog 的所有者,如果此 dialog 没有所有者,则该参数为 null
title - dialog 的标题,如果此 dialog 没有标题,则该参数为 null
modal - 指定在显示的时候是否阻止用户将内容输入到其他*窗口中。如果该参数为 false,则 dialog 是 MODELESS;如果该参数为 true,则模式类型属性被设置为 DEFAULT_MODALITY_TYPE
编码
import java.awt.*;
import java.awt.event.*;
import java.io.*;
class WindowDemo{
// 初始化组件
private Frame f;
private TextField tf;
private Button but;
private TextArea ta;
// 初始化对话框相关组件
private Dialog d;
private Label lab;
private Button okBut;
WindowDemo(){
init(); // 页面初始化
}
public void init(){
f=new Frame("my window");
f.setBounds(300,100,600,500);
f.setLayout(new FlowLayout());
tf=new TextField(30);
but=new Button("转到");
ta=new TextArea(25,70); // 行列
d=new Dialog(f,"提示信息",true); // 指定Frame组件的Dialog,标题以及是否阻止用户将内容输入到其他*窗口中。
d.setBounds(400,200,350,150);
d.setLayout(new FlowLayout());
lab=new Label();
okBut=new Button("确定");
d.add(lab);
d.add(okBut);
f.add(tf);
f.add(but);
f.add(ta);
// 加载事件
myEvent();
f.setVisible(true); // 显示窗口
}
public void myEvent(){
okBut.addActionListener(new ActionListener(){ // 按钮关闭对话框
public void actionPerformed(ActionEvent e){
d.setVisible(false);
}
});
d.addWindowListener(new WindowAdapter(){ // 关闭对话框
public void windowClosing(WindowEvent e){
d.setVisible(false);
}
});
tf.addKeyListener(new KeyAdapter(){ // 输入,回车实现功能事件
public void keyPressed(KeyEvent e){
if(e.getKeyCode()==KeyEvent.VK_ENTER)
showDir();
}
});
but.addActionListener(new ActionListener(){ // 添加按钮事件
public void actionPerformed(ActionEvent e){
showDir();
}
});
f.addWindowListener(new WindowAdapter(){ // 窗口关闭事件
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
// 功能代码
private 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{
String info="您输入的信息:"+dirPath+"是错误的,请重新输入正确文件夹目录!";
lab.setText(info);
d.setVisible(true);
}
}
public static void main(String[] args){
new WindowDemo();
}
}
上一篇: three.js个人笔记四
下一篇: [three.js]学习笔记