java实用教程——组件及事件处理——对话框(消息对话框,输入对话框,确认对话框)

消息对话框:(这个对话框提供一些信息)
无模式:可多线程的执行
有模式:用户必须处理这个一个对话框。必须解决这个问题后才可以继续相处下去

对话框分为无模式和有模式两种。如果一个对话框 是有模式的对话框,那么当这个对话框处于激活状态时,只让程序响应对话框内部的事件,而且将阻塞其他线程的执行,用户不能再激活对话框所在程序中的其他窗口,直到该对话框消失不可见。无模式对话框处于激活状态时,能再激活其他窗口,也不阻塞其他线程的执行。

进行一个重要的操作动作之前,通过弹出一个有模式的对话框表明操作的重要性。

public static void showMessageDialog
(Component parentComponent,String message,String title,int
messageType)
创建一个消息对话框,其中参数parentComponent指定对话框可见时的位置如果parentComponent为null,对话框会在屏幕的正前方显示出来;如果组件parentComponent不空,对话框在组件prenCompoment的正前面居中显示。message指定对话框上显示的消息,title指定对话框的标题,messageType取值是JOptionPane中的类常量:

INFORMATIONMESSAGE
在这里插入图片描述

WARNINGMESSAGE
在这里插入图片描述

ERROR MESSAGE
在这里插入图片描述

OUESTIONMESSAGE
在这里插入图片描述

PLAIN MESSAGE
在这里插入图片描述

这些值可以给出对话框的外观,例如,取值JOptionPane. WARNING MESSAGE时,对一个明显的“!”符号。

在下面的例子中,要求用户在文本框中只能输入英文字母,当输入非英文字母时弹出对话框。

public class Example9_16 {public static void main(String args[]) {WindowMess win=new WindowMess();win.setTitle("带消息对话框的窗口"); win.setBounds(80,90,350,300);}}
package 例题;import java.awt.event.*; 
import java.awt.*;
import javax.swing.*;
public class WindowMess extends JFrame implements ActionListener {/*** */private static final long serialVersionUID = -2662134241642973046L;JTextField inputEnglish;JTextArea show;String regex = "[a-zA-Z]+"; WindowMess() {inputEnglish=new JTextField(10);inputEnglish.addActionListener(this);show=new JTextArea(10,10); //add(inputEnglish,BorderLayout.NORTH);// add(show,BorderLayout.CENTER); this.setLayout(new FlowLayout());add(inputEnglish);show.setLineWrap(true);    //设置自动换行   add(new JScrollPane(show));setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public void actionPerformed(ActionEvent e) { if(e.getSource()==inputEnglish) {String str=inputEnglish.getText();if(str.matches(regex)) {show.append(str+",");}else { //弹出消息对话框。JOptionPane.showMessageDialog(this,"输入了非法字符","消息对话框",JOptionPane.ERROR_MESSAGE);inputEnglish.setText(null); }  }}
}

在这里插入图片描述

输入对话框:(弹出对话框可以输入数据)
输入对话框有模式

输入对话框含有供用户输入文本的文本框、一个确认和取消按钮,是有模式对话框。当输入对话框可见时,要求用户输入一个字符串。

JOptionPane 类的静态方法

第9章组件及事件处理

public static String showInputDialog (Component parentComponent,

Object message,

String title,

int messageType)

可以创建一个 输入对话框,其中参数parentComponent指定输入对话框所依赖的组件,输入对话框会在该组件的正前方显示出来,如果parentComponent为null,输入对话框会在屏幕的正前方显示出来,参数message指定对话框上的提示信息,参数title 指定对话框上的标题,参数messageType可取的有效值是JOptionPane中的类常量:

●ERROR MESSAGE

●INFORMATION MESSAGE

●WARNING MESSAGE

●QUESTION_ MESSAGE

●PLAIN MESSAGE
无模式
在这里插入图片描述

这些位可以给出对话框的外观。如取值JoiPane WARNIN MSSE时对话框的外观上会有个明显的“1” 符号。

单击输入对话框上的确试按钮、取消按钮或关团图标,都可以使输入对话框消失不可见,如果单击的是确认按钮,输入对话框将这返回用户在对话框的文本输入对话框框中输入的字符事,否则返回null。输入数字,用空格分隔

在下面的例子17中,用户单击按安钮弹出输入对话框,用户如果单击输入对话框上的确定,在输入对话框中输入若干个数字程序中输入对话框的运行效果

public class Example9_17 {public static void main(String args[]) {WindowInput win=new WindowInput();win.setTitle("带输入对话框的窗口"); win.setBounds(80,90,600,400);}}
package 例题1;import java.awt.event.*; 
import java.awt.*;
import javax.swing.*;
import java.util.*;
public class WindowInput extends JFrame implements ActionListener {/*** */private static final long serialVersionUID = 5060348990465300142L;JTextArea showResult;JButton openInput;WindowInput() {openInput=new JButton("弹出输入对话框");showResult=new JTextArea(10,20);Font f =new Font("宋体",Font.PLAIN,23);showResult.setFont(f);this.setLayout(new FlowLayout());//设置为流式布局add(openInput);showResult.setLineWrap(true);    //设置自动换行   add(new JScrollPane(showResult));openInput.addActionListener(this); setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public void actionPerformed(ActionEvent e) { String str=JOptionPane.showInputDialog(this,"输入数字,用空格分隔","输入对话框",JOptionPane.PLAIN_MESSAGE);if(str!=null) {Scanner scanner = new Scanner(str);double sum=0;int k=0;while(scanner.hasNext()){try{double number=scanner.nextDouble();if(k==0)showResult.append(""+number);elseshowResult.append("+"+number);sum=sum+number;k++;} catch(InputMismatchException exp){String t=scanner.next();}}showResult.append("="+sum+"\n");   }}
}

在这里插入图片描述

确认对话框(弹出的对话框确认与否)
确认对话框是有模式对话框,JOptionPane 类的静态方法
public static int showConfi rmDialog (Component parent Component,
Object message,
String title,
int optionType)

得到一个确认对话框,其中参数parentComponent指定确认对话框可见时的位置,确认对话框在参数parentComponent指定的组件的正前方显示出来,
如果prnrCompone为nl确认对话框会在屏幕的正前方显示出来。messge 指定对话框上显示的消息,tile 指定确认对话框的标题,opionTrpe 可取的有效值是JptinPane中的类常量:
●YES_NO_OPTION
在这里插入图片描述

●YES _NO _CANCEL OPTION
在这里插入图片描述

●OK_ CANCEL _OPTION
在这里插入图片描述

这些值可以给出对话框的外观,例如,取值YES _NO CANCEL OPTION时,确认对话框的外观上有yes和no两个按钮。
当确认对话框消失后,JOptionPane.showConfirmDialog方法会返回下列整数值之一

●JOptionPane.YES OPTION
●JOptionPane.NO OPTION
●JOptionPane.CANCEL OPTION
●JOptionPane.OK OPTION
●JOptionPane.CLOSED OPTION
返回的具体值依赖于用户所单击的对话框上的按钮和对话框上的关闭图标

在下面的例子18 中,用户在文本框中输入账户名称,按回车后,将弹出一个确认对话框。如果单击确认对话框上的“是()"按钮,就将名字放入文本区。程序中确认对话框的运行效果如图9.18所示。

public class Example9_18 {public static void main(String args[]) {WindowEnter win=new WindowEnter();win.setTitle("带确认对话框的窗口"); win.setBounds(80,90,500,300);}}
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
public class WindowEnter extends JFrame implements ActionListener {/*** */private static final long serialVersionUID = -7457112890172707618L;JTextField inputName; JTextArea  save;WindowEnter(){inputName=new JTextField(22);inputName.addActionListener(this);save=new JTextArea(10,25);this.setLayout(new FlowLayout());add(inputName);save.setLineWrap(true);    //设置自动换行   add(new JScrollPane(save));setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public void actionPerformed(ActionEvent e) {String s=inputName.getText();int n=JOptionPane.showConfirmDialog(this,"确认是否正确","确认对话框",JOptionPane.YES_NO_OPTION );if(n==JOptionPane.YES_OPTION) {  save.append("\n"+s);}  else if(n==JOptionPane.NO_OPTION) { inputName.setText(null);}}
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/306489.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

11张图演进SeviceMesh服务网格

本周和大家聊聊架构进化史-大家可文末扫码加入随着互联网持续高歌猛进,相关技术名词也是层出不穷,ServiceMesh服务网格这两年尤为火爆,然而很少有讲清楚的文章。笔者这里用心整理了一篇文章,用11张图演绎ServiceMesh的进化历程&am…

java实用教程——组件及事件处理——对话框(颜色对话框,自定义对话框)

颜色对话框: 可以用javax.swing包中的JColorChooser类的静态方法 public staticColorshowDialog (Component component, String title, Color initialColor) 创建一个有模式的颜色对话框,其中参数component指定颜色对话框可见时的位置,颜色对…

.NET Core/.NET 5.0 析构函数依然有效?

【导读】最近看到小伙伴在.NET Core中用到了析构函数,不禁打一疑问,大部分情况下,即使在.NET Framework中都不会怎么用到析构函数,我想在.NET Core中是否还依然有效呢?随着时间推移,迭代版本更新&#xff0…

java实用教程——常用实用类——String类(字符串类)

JAVA把String类定义为final类(因此用户不能扩展String类,即String类不可以有子类) String对象可以用""进行并置运算 identityHashCode会返回对象的hashCode,而不管对象是否重写了hashCode方法。 public class Example8_1 {public static void…

sqlserver 事务日志 异常增长原因排查_小白入门学习打日志

前言只有光头才能变强。文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y记得之前写过一篇:《阿里巴巴 Java开发手册》读后感,之前自学时由于没怎么接触过打“日志”,所以《手册》中的“日志…

在 k8s 中部署 Prometheus 和 Grafana

部署 Prometheus 和 Grafana 到 k8sIntro上次我们主要分享了 asp.net core 集成 prometheus,以及简单的 prometheus 使用,在实际在 k8s 中部署的时候就不能在使用前面讲的静态配置的方式来部署了,需要使用 Prometheus 的服务发现。部署规划Pr…

EntityFramework Core 5.0 VS SQLBulkCopy

【导读】EF Core 5.0伴随着.NET 5.0发布已有一段时日,本节我们来预估当大批量新增数据时,大概是多少区间我们应该考虑SQLBulkCopy而不是EF CoreSQLBulkCopy早出现于.NET Framework 2.0,将数据批量写入利用此类毫无疑问最佳,虽其来…

小心使用 Task.Run 续篇

关于前两天发布的文章:为什么要小心使用 Task.Run,对文中演示的示例到底会不会导致内存泄露,给很多人带来了疑惑。这点我必须向大家道歉,是我对导致内存泄漏的原因没描述和解释清楚,也没用实际的示例证实,是…

java实用教程——组件及事件处理——设置组件的位置(相对于窗口具体位置和布局)

1: 相对于窗口的具体位置 关键点: JButton组件添加到JPanel时,如果想自己位置,需要对JPanel进行如下设置,才能自定义按钮位置 需要将组件添加到画板上去,才可以设置组件的相对具体位置 button1.setBounds…

usb接口定义引脚说明_PerfDogService使用说明

令牌申请教程:https://bbs.perfdog.qq.com/article-detail.html?id55安装包下载:https://perfdog.qq.com/sdk一、 概述PerfDog性能狗服务组件,用户可基于service组件二次开发自己PerfDog性能工具或自动化服务。本文档主要对PerfDogService提…

java实用教程——组件及事件处理——布局管理(五种)

1.流式布局FlowLayout public void pack()调整此窗口的大小,以适合其子组件的首选大小和布局。如果该窗口或其所有者仍不可显示,则两者在计算首选大小之前变得可显示。在计算首选大小之后,将会验证该Window。窗口自动适应大小,使…

个人博客前端模板_腾讯前端开发工程师,教你极速搭建一个个人博客网站

作者: bookerzhao,腾讯 CSIG web前端开发工程师Github 为开源项目提供了用于静态页面展示的 Pages 服务,很多开发者都在上面托管了自己的静态网站和博客,不少开源项目的案例和文档页面也采用了这种方式。不过由于 Pages 的 CDN 节…

云原生时代 给予.NET的机会

.NET诞生于与Java的竞争,微软当年被罚款20亿美元。Java绝不仅仅是一种语言,它是COM的替代者!而COM恰恰是Windows的编程模型。而Java编程很多时候比C编程要容易的多,更致命的是他是跨平台的。微软所推行.NET战略,并且C#…

java实用教程——组件及事件处理——布局的一个小实例

import javax.swing.*; import java.awt.*;public class BasicComponentDemo {Frame frame new Frame("这里测试基本组件");//定义一个按钮Button ok new Button("确认");//定义一个复选框组CheckboxGroup cbg new CheckboxGroup();//定义一个单选框&am…

非极大值抑制_非极大值抑制(non-maximum suppression)

摘自https://blog.csdn.net/qq_38906523/article/details/80195119摘自https://blog.csdn.net/xiexu911/article/details/80609298非极大值抑制NMS在目标检测,定位等领域是一种被广泛使用的方法。对于目标具体位置定位过程,不管是使用sliding Window还是…

TIOBE12月榜单:Java重回第二,Python有望四连冠年度语言

喜欢就关注我们吧!文|白开水TIOBE 公布了 2020 年 12 月的编程语言排行榜。TIOBE 将在下个月公布 2020 年的年度编程语言,一年内排名率增长最高的编程语言将获得这一称号。目前,Python 以 1.90% 数据遥遥领先。其次分别是 C(0.71%…

excel怎么在柱状图上加超链_如何让你的年终总结更符合领导心意,高薪员工必备的excel技能...

临近年底了,好多人都在写年终总结了,惯有的模式就是写一写这一年都做了哪些工作,有什么成绩,未来将如何完善等等......但是如何反应自己一年以来的成绩呢,如果单单是以文字的形式表述怕是不能让领导满意,甚…

java实用教程——组件及事件处理——对话框(dialog)

对话框: import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import java.awt.*; import java.awt.event.*;public class DialogDemo1 {public static void main(String[] args) {Frame frame new Frame("这里测试Dialog");Di…

Vue 凭什么成为 2020 年的一匹黑马

Vue 在前端开发中的火爆程度远超 React 和 Angular ,无论是 BAT 等大厂,还是小型初创公司,Vue 都有着广泛的应用,其相关技术原理也是面试的必考知识点。Vue 的优势太过明显:基于 HTML 的模板语法,响应式的更…

python——学习笔记1

推荐阅读: 爆肝十二万字《python从零到精通教程》 Python菜鸟教程 1.python 的输入输出: 输入:input() 输出:print() 输出不换行:print(x,end"") 数据要和字符串同时输出的时候需要将数据转化为字符串类…