GUI对话框
消息对话框
public static void showMessageDialog(Component parentComponent,String message,String title,int messageType)
parentComponent为null,就会在正前面显示,为this就会在该组件中间显示。
message为对话信息
title为对话框题目
messageType为一个顺带的图标,为JOptionPane的常量
INFORMATON_MESSAGE小感叹号
WARNING_MESSAGE警告
ERROR_MESSAGE交叉
QUESTION_MESSAGE问号
PLAIN_MESSAGE 没有
测试代码(输入不是字母会弹出警告信息
String regex="\\p{Alpha}+";
if(text1.getText().matches(regex)){
textArea1.append(text1.getText()+"\n");
text1.setText(null);
}else{
JOptionPane.showMessageDialog(this, "error","huang",JOptionPane.PLAIN_MESSAGE);
}
输入对话框
public static String showInputDialog(Component parentComponent,objext message,String title,int messageType)
除了返回类型
和上面一样,不重复了
一小段测试代码(输入框里面输入一串数字算总数
double sum=0;
String a=JOptionPane.showInputDialog(this,"input number split by space","",JOptionPane.PLAIN_MESSAGE);
if(a!=null){
Scanner scanner1=new Scanner(a);
for(;scanner1.hasNext();){
try{
double number=scanner1.nextDouble();
textArea1.append(number+"+");
sum+=number;
}
catch(Exception e2){
String t=scanner1.next();//不理他跳下一个
}
}
}
textArea1.append("="+ sum+"\n");
选择对话框
public static int showConfirmDialog(Component parentComponent,Objext message,String title,int optionType)
这次返回的是int ,后面的optionType也有点不一样
记住个JOptionPane.YES_OPTION
自定义对话框
其实对话框一直有分有模式和没有模式的,之前一直忘记了
模式对话框就是不处理它就没法处理父窗口,而非模式对话框就是不用先处理此对话框也可以处理父窗口.
自定义的对话框要继承JDialog
还要像窗口那样
setBounds,setVisible,setDefaultCloseOperation
测试代码(用对话框改窗口的名字
class MyWin extends JFrame implements ActionListener{
JTextField text1;
JButton button1,button2;
JTextArea textArea1;
JLabel label1;
MyDialog dialog1;
MyWin(){
init();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void init(){
setLayout(new FlowLayout());
button1=new JButton("go");
add(button1);
button1.addActionListener(this);
dialog1=new MyDialog(this,"is me");
dialog1.setModal(true);//改为由模式的对话框
}
public void actionPerformed(ActionEvent e){
dialog1.setVisible(true);
String s=dialog1.s;
setTitle(s);
}
}
class MyDialog extends JDialog implements ActionListener{
JTextField text1;
String s;
MyDialog(JFrame f,String s){
super(f,s);
setLayout(new FlowLayout());
text1=new JTextField(8);
text1.addActionListener(this);
add(new JLabel("input window title"));
add(text1);
setBounds(60,60,200,180);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
public void actionPerformed(ActionEvent e){
s=text1.getText();
setVisible(false);
}
}
GUI对话框的更多相关文章
- MATLAB GUI对话框设计(转载)
原文地址:http://blog.csdn.net/shuziluoji1988/article/details/8532982 1.公共对话框: 公共对话框是利用windows资源的对话框,包括文件 ...
- MATLAB GUI对话框设计
原文地址:http://blog.csdn.net/shuziluoji1988/article/details/8532982 1.公共对话框: 公共对话框是利用windows资源的对话框,包括文件 ...
- Java探索之旅(2)——GUI输入输出与代码的规范性
1.知识点概叙 ① 定名常量:关键字final,类似C++ const定义,一般用大写:final double PI=3.1415926 ② 5/2=2:5.0/2=2.5://通常意义的除法,至少 ...
- 关于matlab GUI 的一些总结
最近在 用matlab做一个GUI的用户界面 大多都是百度出来 摸索的学习 总结一下遇到的一些问题和解决方法 一: 在文本框动态显示文本 (保留之前的文本并显示当前文本内容): 在文本框显示文本 基本 ...
- Nuget 命令 NuGet 管理项目库
因为可视化库程序包管理器的局限性,有很多需要的功能在界面中无法完成. 以下技巧均需要在"程序包管理器控制台"中使用命令来完成. 一.改变项目目标框架后,更新程序包 当改变项目的目标 ...
- NUGet的诞生与使用
本文引用地址:http://msdn.microsoft.com/zh-cn/magazine/hh547106.aspx NuGet 使用 NuGet 管理项目库 Phil Haack 无论多么努力 ...
- VIM7.3中文手册
INDEX *index.txt* For Vim version 7.3. 最近更新: 2010年7月 VIM 参考手册 by Bram Moolenaar 译者: Willis h ...
- vimrc语法
前言 工欲善其事,必先利其器.一个programmer必然要先有一个好的editor.vim就是一个十分强大的编辑器.它的强大之处,在于其个性化和可定制.学习vim,就像学习Linux,学习perl, ...
- 【转】使用 NuGet 管理项目库-Phil Haack
原文地址:https://msdn.microsoft.com/zh-cn/magazine/hh547106.aspx 无论多么努力,Microsoft 也没办法提供开发人员所需要的每一个库. 虽然 ...
随机推荐
- PHP之路——PHPExcel使用
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABGMAAAJkCAIAAAA6GnvRAAAgAElEQVR4nOzd918bV/ov8Pv33Y2RNC
- laravel框架——保存用户登陆信息(session)
public function inlog(Request $request) { //获取表单提交的数据 $input = $request->all(); //根本获取的数据去数据库中查询 ...
- XCode7打包上传报错
在XCode7上传应用时,上传失败遇到两个错误,提示如下: ERROR ITMS-90535: "Unexpected CFBundleExecutable Key. The bundl ...
- 转:WebSocket与Java
Bozhidar Bozhanov是Ontotext AD的高级软件工程师,拥有多年的从业经验,也是stackoverflow上的活跃用户.他精通于Java与Java技术栈,如Spring.JPA.J ...
- -_-#【Canvas】measureText, translate, drawImage
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- R学习日记——分解时间序列(非季节性数据)
分解时间序列,就是将一个时间序列拆分成不同的构成元件.一般序列(非季节性序列)包含一个趋势部分和一个不规则部分(也就是随机部分),而如果是一个季节性序列,除以上两个外,还有季节性部分. 在此,我们 ...
- XBox360自制系统的更新(Update)
升级和更新 升级(Upgrade):从Windows XP到Windows 10,这叫升级,不叫更新.XBox360升级失败的话,后果可能会比较严重,直接就无法开机了. 更新(Update):在Win ...
- Python学习打算
背景:本人用python写自动化脚本,基础的东西都会啦.但是呢,鉴于年轻应该好好学习,所以打算再买一本python书籍用来精读. Python 好的博客: Python快速教程(好多,一点也不快速): ...
- IO中同步、异步与阻塞、非阻塞的区别(转)
转自:http://blog.chinaunix.net/uid-26000296-id-3754118.html 一.同步与异步同步/异步, 它们是消息的通知机制 1. 概念解释A. 同步所谓同步, ...
- Linux编程之自定义消息队列
我这里要讲的并不是IPC中的消息队列,我要讲的是在进程内部实现自定义的消息队列,让各个线程的消息来推动整个进程的运动.进程间的消息队列用于进程与进程之间的通信,而我将要实现的进程内的消息队列是用于有序 ...