对话框的四种类型:
消息, 输入,确认, 颜色

背景:建一个名为“ActionEventDemo”的窗口,在其中放置了一个按钮,一个面板,一个标签。

1)消息对话框

(1)点击按钮弹出名为"消息提示对话框"的消息对话框,对话框里的内容为:“是否要输入内容”。选择“是”即输入 代码中 已经给出的内容。

代码如下:

 1 package HandEvent;
 2
 3 import java.awt.event.ActionEvent;
 4 import java.awt.event.ActionListener;
 5
 6 import javax.swing.*;
 7
 8 public class ActionEventDemo extends JFrame implements ActionListener {
 9     JButton click;
10     JPanel panel;
11     JLabel message;
12
13     public ActionEventDemo() {
14         super("ActionEventDemo");//只能放在第一行,在子类的构造方法中,用super调用且放在第一行
15         click =new JButton ("Click");
16         panel =new JPanel();
17         message=new JLabel();
18
19         add(panel);
20         panel.add(click);
21         panel.add(message);
22
23         click.addActionListener(this);//this指代"obj"(public static void 中new 的对象)
24         setSize(300,300);
25         setVisible(true);
26
27     }
28
29     public static void main(String args[]) {
30         ActionEventDemo obj=new ActionEventDemo();
31     }
32     public void actionPerformed(ActionEvent arg0) {
33         //消息对话框
34         JOptionPane.showMessageDialog(this,"是否要输入内容","消息提示对话框",JOptionPane.INFORMATION_MESSAGE);//this交代了在this的前方显示对话框
35         //this 至位置,第二个 为内容,第三个为对话框标题,第四个为对话框类型
36
37         message.setText("Welcome to java");//需要传参
38
39     }
40 }

View Code

(2)点击按钮弹出名为“消息警告对话框”,对话框里的内容为“该内容有风险,是否要继续输入”。选择“是”即输入 代码中 已经给出的内容。
代码如下:

 1 package HandEvent;
 2
 3 import java.awt.event.ActionEvent;
 4 import java.awt.event.ActionListener;
 5
 6 import javax.swing.*;
 7
 8 public class ActionEventDemo extends JFrame implements ActionListener {
 9     JButton click;
10     JPanel panel;
11     JLabel message;
12
13     public ActionEventDemo() {
14         super("ActionEventDemo");//只能放在第一行,在子类的构造方法中,用super调用且放在第一行
15         click =new JButton ("Click");
16         panel =new JPanel();
17         message=new JLabel();
18
19         add(panel);
20         panel.add(click);
21         panel.add(message);
22
23         click.addActionListener(this);//this指代"obj"(public static void 中new 的对象)
24         setSize(300,300);
25         setVisible(true);
26
27     }
28
29     public static void main(String args[]) {
30         ActionEventDemo obj=new ActionEventDemo();
31     }
32     public void actionPerformed(ActionEvent arg0) {
33         //消息对话框
34         JOptionPane.showMessageDialog(this,"该内容有风险,是否要继续输入","消息警告对话框",JOptionPane.WARNING_MESSAGE);//this交代了在this的前方显示对话框
35         //this 至位置,第二个 为内容,第三个为对话框标题,第四个为对话框类型
36
37         message.setText("Welcome to java");//需要传参
38
39     }
40 }

View Code

两段代码的分析:这两段代码都是属于消息对话框(当然还有其他的消息对话框)。两段代码的变动只有一句:
将:

        JOptionPane.showMessageDialog(this,"是否要输入内容","消息提示对话框",JOptionPane.INFORMATION_MESSAGE);//this交代了在this的前方显示对话框

改为:

        JOptionPane.showMessageDialog(this,"该内容有风险,是否要继续输入","消息警告对话框",JOptionPane.WARNING_MESSAGE);//this交代了在this的前方显示对话框

在JOptionPane.showMessageDialog后面的括号中(,,,)有三个都号,分割成了4个位置。

第一个位置“this”表示,在该位置之前弹出窗口;第二个位置 输入对话框的内容;第三个位置 设定对话框的标题;第四个位置 设定对话框的属性(提示.警告等等,注:不同属性的标志不一样)。
其中 “this”——new 出的“obj”对象的设定:

public static void main(String args[]) {ActionEventDemo obj=new ActionEventDemo(); }

2)输入对话框

(1)点击按钮弹出名为"输入对话框"的输入对话框,对话框里的内容为:“给标签赋值的内容是:”,在下面的文本框中输入 要给标题赋值的内容 点击确定后,则在按钮后面显示。如果点击“取消”,则无内容显示。

代码如下:

 1 package HandEvent;
 2
 3 import java.awt.event.ActionEvent;
 4 import java.awt.event.ActionListener;
 5
 6 import javax.swing.*;
 7
 8 public class ActionEventDemo extends JFrame implements ActionListener {
 9     JButton click;
10     JPanel panel;
11     JLabel message;
12
13     public ActionEventDemo() {
14         super("ActionEventDemo");//只能放在第一行,在子类的构造方法中,用super调用且放在第一行
15         click =new JButton ("Click");
16         panel =new JPanel();
17         message=new JLabel();
18
19         add(panel);
20         panel.add(click);
21         panel.add(message);
22
23         click.addActionListener(this);
24         setSize(300,300);
25         setVisible(true);
26     }
27
28     public static void main(String args[]) {
29         ActionEventDemo obj=new ActionEventDemo();
30     }
31
32     public void actionPerformed(ActionEvent arg0) {
33         //输入对话框
34         String str=JOptionPane.showInputDialog(this, "给标签赋值的内容是:","输入对话框",JOptionPane.INFORMATION_MESSAGE);
35         if(str!=null)
36             message.setText(str);
37             //this 至位置,第二个 为内容,第三个为对话框标题,第四个为对话框类型
38         //message.setText("Welcome to java");//需要传参
39     }
40 }

View Code

分析:
在之前的内容上

将:

        JOptionPane.showMessageDialog(this,"该内容有风险,是否要继续输入","消息警告对话框",JOptionPane.WARNING_MESSAGE);//this交代了在this的前方显示对话框

改为:

String str=JOptionPane.showInputDialog(this, "给标签复制的内容是:","输入对话框",JOptionPane.INFORMATION_MESSAGE);if(str!=null)message.setText(str);

注:

<1>和消息提示框不同的是,输入对话框必须要定义一个String str 变量 ,并将JOptionPane.showInputDialog()的值赋值给该变量

<2>考虑到代码的完整性,用if语句判断,如果在输入框中输入不为空(即不为  null)则用message。setText导出输入框中输入的字符串。

<3>JOptionPane.showInputDialog()和JOptionPone.showMessageDialog()一样,在他们后面的括号中的四个位置上:分别是:this(在该位置之前插入),对话框中的内容,对话框的名称以及对话框的属性。

3)确认对话框

(1)点击按钮弹出名为"确认对话框"的确认对话框,对话框里的内容为:“是否确认给标题赋值:”,点击“是”,则在按钮后面显示预先先好的message.setText()复制代码。如果点击“否”或者“取消”,则无内容显示。

代码如下:

 1 package HandEvent;
 2
 3 import java.awt.event.ActionEvent;
 4 import java.awt.event.ActionListener;
 5
 6 import javax.swing.*;
 7
 8 public class ActionEventDemo extends JFrame implements ActionListener {
 9     JButton click;
10     JPanel panel;
11     JLabel message;
12
13     public ActionEventDemo() {
14         super("ActionEventDemo");//只能放在第一行,在子类的构造方法中,用super调用且放在第一行
15         click =new JButton ("Click");
16         panel =new JPanel();
17         message=new JLabel();
18
19         add(panel);
20         panel.add(click);
21         panel.add(message);
22
23         click.addActionListener(this);
24
25         setSize(300,300);
26         setVisible(true);
27     }
28
29     public static void main(String args[]) {
30         ActionEventDemo obj=new ActionEventDemo();
31     }
32
33     public void actionPerformed(ActionEvent arg0) {
34         //确认对话框
35         int n=JOptionPane.showConfirmDialog(this, "确认是否给标签赋值","确认对话框",JOptionPane.YES_NO_CANCEL_OPTION);
36         if(n==JOptionPane.YES_OPTION) {
37             message.setText("welcome");
38         }
39         else if (n==JOptionPane.NO_OPTION){
40             message.setText(null);
41         }
42         else {
43             message.setText(null);
44         }
45
46     }
47 }

View Code

分析:
在2)的基础上:
将:

String str=JOptionPane.showInputDialog(this, "给标签复制的内容是:","输入对话框",JOptionPane.INFORMATION_MESSAGE);if(str!=null)message.setText(str);

改为:

int n=JOptionPane.showConfirmDialog(this, "确认是否给标签赋值","确认对话框",JOptionPane.YES_NO_CANCEL_OPTION);if(n==JOptionPane.YES_OPTION) {message.setText("welcome");}else if (n==JOptionPane.NO_OPTION){message.setText(null);}else {message.setText(null);}

注 :
<1>和输入对话框一样,也要定义int n 的整型变量,并将JOptionPane.showConfirmDialog()赋值变量
<2>JOptionPane.showConfirmDialog()和JOptionPane.showInputDialog(),JOptionPone.showMessageDialog()一样,在他们后面的括号中的四个位置上:分别是:this(在该位置之前插入),对话框中的内容,对话框的名称以及对话框的属性。

<3>在<2>中的第四个位置上JOptionPane在加“ .  ”之后有很三个可选项(包括1yes,no,cancle  2yes  3no)

<4>若选择了yes,no ,cancle的话,if语句对三个按钮反别判断。“no”或者“cancle”则在massage。setText()中写入“null”

4)颜色对话框

(1)点击按钮弹出名为"调色板"的颜色对话框,选择颜色,即为窗口的背景色。

代码如下:

 1 package HandEvent;
 2
 3 import java.awt.Color;
 4 import java.awt.Container;
 5 import java.awt.event.ActionEvent;
 6 import java.awt.event.ActionListener;
 7
 8 import javax.swing.*;
 9
10 public class ActionEventDemo extends JFrame implements ActionListener {
11     JButton click;
12     JPanel panel;
13     JLabel message;
14
15     public ActionEventDemo() {
16         super("ActionEvenDemo");//只能放在第一行,在子类的构造方法中,用super调用且放在第一行
17         click =new JButton ("Click");
18         panel =new JPanel();
19         message=new JLabel();
20
21         add(panel);
22         panel.add(click);
23         panel.add(message);
24
25         click.addActionListener(this);
26
27         setSize(300,300);
28         setVisible(true);
29
30     }
31
32     public static void main(String args[]) {
33         ActionEventDemo obj=new ActionEventDemo();
34     }
35
36     public void actionPerformed(ActionEvent arg0) {
37         //颜色对话框
38         Color clor=JColorChooser.showDialog(this,"调色板" ,getContentPane().getBackground());
39         panel.setBackground(clor);
40
41     }
42 }

View Code

分析:
将:

int n=JOptionPane.showConfirmDialog(this, "确认是否给标签赋值","确认对话框",JOptionPane.YES_NO_CANCEL_OPTION);if(n==JOptionPane.YES_OPTION) {message.setText("welcome"); } else if (n==JOptionPane.NO_OPTION){ message.setText(null); } else { message.setText(null); } 

改为:

Color clor=JColorChooser.showDialog(this,"调色板" ,getContentPane().getBackground());panel.setBackground(clor);

注:
<1>和输入,确认对话框一样,定义一个Color clor的变量,并将JColorChooser.showDialog()赋值变量。

<2>直接用JPanel 定义的变量panel调用color,否则无法显示背景颜色。

转载于:https://www.cnblogs.com/Catherinezhilin/p/7977164.html

Java--UI--弹出对话框相关推荐

  1. Java常用弹出对话框

    Java常用弹出对话框 刚开始写Java工具的小伙伴可能不知道怎么写消息对话框,在这里总结一些常用的几种消息弹出框: 基本确定按钮弹出框: ● 效果图: ● Java代码: JOptionPane.s ...

  2. Java Swing弹出对话框之消息提示对话框MessageDialog

    消息提示对话框主要通过JOptionPane类的showMessageDialog来实现,主要用于信息提示.报警提示.错误提示等. 一.重载方法: JOptionPane.showMessageDia ...

  3. Java Swing弹出对话框之选择对话框OptionDialog

    选择对话框主要通过JOptionPane类的showOptionDialog来实现,主要用于提示从多个选项中选择需要的选项,返回值为所选项的索引值. 一.重载方法: JOptionPane.showO ...

  4. JS弹出对话框的三种方式

    javascript的三种对话框是通过调用window对象的三个方法alert(),confirm()和prompt()来获得,可以利用这些对话框来完成js的输入和输出,实现与用户能进行交互的js代码 ...

  5. java fx alert_javaFx:使用弹出对话框 Alert

    javaFx8 自带的对话框非常好用,类似的使用方式如下: /** * 弹出一个通用的确定对话框 * @param p_header 对话框的信息标题 * @param p_message 对话框的信 ...

  6. java在后台输出js弹出对话框

    http://blog.163.com/yurong_1987@126/blog/static/4751786320092711596354/ 实现方法分为两种: 一.直接在后台打印js对话框,原理如 ...

  7. java前端 js弹出框_js 弹出对话框3种方式

    js 弹出对话框3种方式 (2012-12-03 16:10:47) 标签: it javascript js 弹出对话框3种方式对话框有三种 1:只是提醒,不能对脚本产生任何改变: 2:一般用于确认 ...

  8. 异步任务下载apk文件并弹出对话框提示当前进度,文件下载结束后弹出安装界面

    主要任务 1.下载apk保存到sd卡指定目录 2.下载时显示下载的进度 3.下载完成后弹出对话框提示安装 分析过程: 联网操作不能在UI线程(主线程)进行 需要开启线程下载,为了效率我们这里采用异步线 ...

  9. ASP.NET弹出对话框几种基本方法【】

    来源:http://www.cnblogs.com/langge/archive/2009/10/24/1589043.html 我们在.NET程序的开发过程中,常常需要和用户进行信息交互,比如执行某 ...

  10. .NET弹出对话框小结

    我们在.NET程序的开发过程中,常常需要和用户进行信息交互,比如执行某项操作是否成功,"确定"还是"取消",以及选择"确定"或"取 ...

最新文章

  1. pandas.core.frame.DataFrame是什么数据结构,为什么要如此取值  [ ]中嵌套[ ]
  2. vux 组件打造手机端项目
  3. MySQL InnoDB存储引擎
  4. [C++11]继承构造函数
  5. Android录音并输出为Mp4文件
  6. 蔚来与雷蛇联合推出NIO ES6限量版车型 售价46.78万元
  7. python有关urllib,urllib2和requests应用记录
  8. PHP 动态设置数组索引的值
  9. 基于Opencv的几种立体匹配算法+ELAS
  10. TPScan一键ThinkPHP漏洞检测工具使用
  11. 【Love2d从青铜到王者】第十篇Love2d之类和类的继承(Classes And Inheritance)
  12. Ubuntu和windows共享文件,Windows和windows共享文件
  13. Revit二开之管道翻弯
  14. QT自定义控件插件学习笔记
  15. 判断任一给定整数N是否满足条件: 它是完全平方数,又至少有两位数字相同,如144、676等。
  16. 孙子兵法36计详解(完整版)
  17. 频繁撤单有风险?--这些委托类型让您享受“撤单豁免权”
  18. 网络安全实验室|网络信息安全(基础关)
  19. Romax在法雷奥研发低功耗电驱动系统中的应用
  20. 关于TCP的一些基础知识(1)

热门文章

  1. JavaScript-2.4 改进的Hello程序,使用div,---ShinePans
  2. Android 分享两个你学习android 平台开发必须碰到的几个知识点的组件【天气预报、日期】View 组件...
  3. Java多线程看着一篇足够了!
  4. loadrunner录制脚本为空的情况
  5. 2021 年 338 道架构技术面试大厂高频题汇总(附答案详解)
  6. 20个使用 Java CompletableFuture的示例,不服不行
  7. Facebook、亚马逊等巨头是如何建造自己的数据库的?
  8. 从 0 到 1000+ 台服务器监控的构建之路
  9. UC大裁员:全体带薪休假至3月31日,补偿措施羡煞网友!
  10. Android 市场的未来