java Dialog
Dialog构造方法
* Dialog(Frame owner, String title, boolean modal)
构造一个最初不可见的 Dialog,它带有指定的所有者 Frame、标题和模式。
备注:Dialog的模式区别在于:
true的话对话框依附于窗体,不取消Dialog不可以操作窗体,
false的话,不取消Dialog可以操作窗体!
package june610;
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;
public class FrameDemo4 {
public static void main(String[] args) {
final Frame f = new Frame("我的电脑");
f.setBounds(300, 100, 600, 500);
f.setLayout(new FlowLayout());
Button b = new Button("转到");
Button okBut = new Button("确定");
final TextField tf = new TextField(60);
final TextArea ta = new TextArea(25, 70);
f.add(tf);
f.add(b);
f.add(ta);
f.setVisible(true);
final Dialog d = new Dialog(f,"提示信息",true);
final Label lab = new Label();//没有给出内容,用到的时候再给出!
d.add(lab);//label标签加到Dialog上去!
d.setBounds(400, 200, 240, 150);
d.setLayout(new FlowLayout());
d.add(okBut);
okBut.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e){
d.setVisible(false);
}
});
//只可以对鼠标有作用!
okBut.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
d.setVisible(false);
}
});
d.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
d.setVisible(false);//对话框不显示
}
});
//窗体上的操作
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//设置键盘监听器,当输入enter键的时候实现和点击鼠标同样的功能!
/*tf.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == 10) {
// buttonAction();
run(tf,ta,f,d,lab);
}
System.out.println(e.getKeyCode());
}
});*/
//和上面被注释的代码实现的是同样的功能,也是键盘控制,不过不能设定哪个键,只有enter!
tf.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
run(tf,ta,f,d,lab);
// System.out.println(text);
}
});
//给转到添加键盘和鼠标双控制
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
run(tf,ta,f,d,lab);
// System.out.println(text);
}
});
b.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e){
run(tf,ta,f,d,lab);
}
});
}
//封装这一方法,为了方便使用(注意这个时候传递参数太多了,尽量避免这种情况的发生!
//在一个方法内部创建的对象只有在自己方法体里面才可以直接调用,而在外部方法必须传递参数)
public static void run(TextField tf,TextArea ta,Frame f,Dialog d,Label lab){
String dirPath = tf.getText();// 获取文本(我们想验证的是路径),接下来获取文件
File file = new File(dirPath);// 获取文件
if (file.exists() && file.isDirectory()) {// 判断,存在否以及是否是文件夹
ta.setText("");// 如果符合条件的话,清空以前的数据;
String[] names = file.list();
for (String name : names) {
ta.append(name + "\r\n");
}
} else {
//备注:应该在这里构建对话框,为了内存的优化,用到的时候才创建对象,用不到就不创建!
String info = "您输入的信息:"+dirPath+"有误,请重新输入!";
lab.setText(info);
d.setVisible(true);
/**可以这样写,但是不专业,现在弹出对话框!
* ta.setText("");
ta.append("对不起,请确认您输入的是路径!");
*/
}
}
}
java Dialog的更多相关文章
- [JAVA] 一个可以编辑、编译、运行Java简单文件的记事本java实现
本来是Java课做一个仿windows记事本的实验,后来突然脑子一热,结果就给它加了一个编译运行Java文件的功能. 本工程总共大约3000行代码,基本上把所学的java界面.文件.控件的功能都包含在 ...
- android 修改系统的dialog样式
android 修改系统的dialog样式 一.觉得自定义配置文件麻烦?那就来修改系统自定义XML文件来实现修改系统dialog的样式吧. 如果是在XML中样式:首先来说下样式. 在 Style.x ...
- [工作积累] Android system dialog with native callback
JNI: invoke java dialog with native callback: store native function address in java, and invoke nati ...
- 3java面试题 传智 发的 有用
第一章内容介绍 20 第二章JavaSE基础 21 一.Java面向对象 21 1. 面向对象都有哪些特性以及你对这些特性的理解 21 2. 访问权限修饰符public.private.protect ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- 10.JAVA之GUI编程弹出对话框Dialog
在上节基础上添加对话框显示错误信息. 代码如下: /*弹出对话框显示错误信息,对话框一般不单独出现,一般依赖于窗体.*/ /*练习-列出指定目录内容*/ import java.awt.Button; ...
- Java基础之扩展GUI——使用字体对话框(Sketcher 5 displaying a font dialog)
控制台程序. 为了可以选择系统支持的字体,我们定义了一个FontDialog类: // Class to define a dialog to choose a font import java.aw ...
- 关于dialog引起的 java.lang.IllegalArgumentException: View=com.android.internal.policy.impl.PhoneWindow$DecorView not attached to window manager 错误的分析
在跑Monkey测试的时候出现了一个比较特别的问题,先来看看Log: // CRASH: com.meizu.media.painter (pid 12491) // Short Msg: java. ...
- Java基础--Java---IO流------GUI(布局)、Frame、事件监听机制、窗体事件、Action事件、鼠标事件、对话框Dialog、键盘事件、菜单
* 创建图形化界面 * 1.创建frame窗体 * 2.对窗体进行基本设置 * 比如大小.位置.布局 * 3.定义组件 * 4.将组件通过窗体的add方法添加到窗体 * 5.让窗体显 ...
随机推荐
- 粉丝裂变活动bug
1 二维码ios无法扫描 也不知道是现在二维码长按识别的机制改了还是咋样,之前如果二维码ios 太小或者位置不对无法识别就加个透明的二维码,一般是妥妥的,但是这次就是不行,排除fixed,变形等等 解 ...
- 海胜专访--MaxCompute 与大数据查询引擎的技术和故事
摘要:在2019大数据技术公开课第一季<技术人生专访>中,阿里巴巴云计算平台高级技术专家苑海胜为大家分享了<MaxCompute 与大数据查询引擎的技术和故事>,主要介绍了Ma ...
- 50倍时空算力提升,阿里云RDS PostgreSQL GPU版本上线
2019年3月19日,阿里云RDS PostgreSQL数据库GPU规格版本正式上线,开启了RDS异构计算并行加速之路.该版本在RDS(关系型数据库服务)的云基础设施层面首次完成了与阿里云异构计算产品 ...
- IE8下图片无法显示问题
一.背景图片不能显示的原因 代码: background:url(img/img1.jpg)no-repeat; background:url(img/img1.jpg) no-repeat; 第一个 ...
- 六.基本数据结构-双端队列(Deque)
一.双端队列(Deque) - 概念:deque(也称为双端队列)是与队列类似的项的有序集合.它有两个端部,首部和尾部,并且项在集合中保持不变. - 特性:deque 特殊之处在于添加和删除项是非限制 ...
- QT语言翻译
QT中多语言的实现方式: 1.代码中tr运用 2.使用工具生成ts文件 3.翻译ts文件 4.生成qm文件 5.程序加载 以下内容程序加载时放入即可. QString appPath = QCoreA ...
- 【JZOJ4886】【NOIP2016提高A组集训第13场11.11】字符串
题目描述 某日mhy12345在教同学们写helloworld,要求同学们用程序输出一个给定长度的字符串,然而发现有些人输出了一些"危险"的东西,所以mhy12345想知道对于任意 ...
- 【JZOJ1637】【ZJOI2009】狼和羊的故事
题目描述 "狼爱上羊啊爱的疯狂,谁让他们真爱了一场:狼爱上羊啊并不荒唐,他们说有爱就有方向......" Orez听到这首歌,心想:狼和羊如此和谐,为什么不尝试羊狼合养呢?说干就干 ...
- 洛谷2375 BZOJ 3670动物园题解
题目链接 洛谷链接 我们发现题目要我们求的num[i]东西本质上其实是 求有多少以i结尾的非前缀且能与前缀匹配的字符串,而且要求字符串长度小于(i/2) 我们先不考虑字符串长度的限制,看所有以i结尾的 ...
- linux 系统下如何进行用户之间的切换
切换用户的命令是su,su是(switch user)切换用户的缩写.通过su命令,可以从普通用户切换到root用户,也可以从root用户切换到普通用户.从普通用户切换到root用户需要密码(该密码是 ...