关于JFace中的输入值(InputDialog)对话框类
格式:
InputDialog(Shell parentShell,
String dialogTitle,
String dialogMessage,
String initialValue,
InputValidator validator)
Creates an input dialog with OK and Cancel buttons.
参数说明: parentShell 是一个Shell,可以接受null值,dialogTitle为对话框的标题:
dialogMessage为对话框中的提示文字.initialValue设置初始值,validator是一个对
输入值的验证类.
如果最后一个参数validator是设成了null,也就是说不使用验证类对输入的值进行有效性的验证.
例子:InputDialog和MessageDialog的使用不同,InputDialog没有提供静态方法来打开
窗口,必须要先创建一个InputDialog对象,然后再使用open方法弹出窗口.open方法执行之后,
程序会挂起,直到退出InputDialog对话框,最后open方法的返回值(字符串)就是InputDialog
中的输入值.
实例代码如下:
public class InputDialog1 {
public static void main(String[] args) {
InputDialog1 window = new InputDialog1();
window.open();
}
public void open() {
final Display display = Display.getDefault();
final Shell shell = new Shell();
shell.setSize(500, 375);
shell.setText("SWT Application");
InputDialog dialog = new InputDialog(shell,"标题","请输入值","1",new MyValidator());
if(dialog.open() == InputDialog.OK){
String valueStr = dialog.getValue();
System.out.println("请输入值:" + valueStr);
}
shell.layout();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
}
/**
* 值的验证类
*/
class MyValidator implements IInputValidator { /**
* 返回null值表示值(newText)合法 返回其它字符符串(包括""这样的空字符)表示值不合法
*/
@Override
public String isValid(String newText) {
float value = 0;
try {
value = Float.valueOf(newText).floatValue();
} catch (java.lang.NumberFormatException e) {
return "请输入数值";
}
if (value > 0 && value < 100) {
return null;// 返回null表示newText合法
} else {
return "请输入大于0小于100的数";
}
}
}
}
这个例子中只能输入0~100之间的数值.当输入的值不在这个范围内时,窗口的下方会出现文字提示.
并且"确定"按钮置灰.
运行结果:
关于JFace中的输入值(InputDialog)对话框类的更多相关文章
- 关于JFace中的右键菜单Action类,ActgionGroup类,MenuManager类
Action类,ActionGroup类,MenuManager类介绍 SWT中菜单是Menu类,在前面章节中已经介绍过Menu类的使用. 菜单项用MeauItem类来实现.但是在实际开发中,同一种功 ...
- 关于JFace中的向导式对话框(WizardDialog类)
向导式对话框是一种非常友好的界面,它能够引导用户一步步的输入信息.Eclipse的"新建项目",就是这样的向导式对话框. 在Eclipse中向导式对话框的开发是很简单的,它由Wiz ...
- 关于JFace中的进度条对话框(ProgressMonitorDialog类)
在Windows操作系统中,最常用的进度条对话框就是文件复制时的弹出框,如果想让用户愉快的使用你开发 的软件,那么在执行某个较长时间的操作时候,就应该弹出一个进度条提示框,告诉用户程序正在做什么. 做 ...
- 关于JFace中的对话框MessageDialog类等其它类型对话框
对话框是软件系统中最常用到的界面,对话框无处不在,从界面结构来说,对话框主要是由主体的界面组件和底部窗体按钮组成. 之前的例子中已经频繁的使用到了MessageDialog.openInformati ...
- PIE SDK 监督分类对话框类(SupervisedClassificaitonDialog)使用经验
最近研究遥感,用到分类算法,PIE SDK正好提供了一些方法可供调用,他们的官方博客上也有相应的示例代码(可参考:https://www.cnblogs.com/PIESat/p/10725270.h ...
- mfc 在VC的两个对话框类中传递参数的三种方法
弄了好久,今天终于把在VC中的对话框类之间传递参数的问题解决了,很开心,记录如下: 1. 我所建立的工程是一个基于MFC对话框的应用程序,一共有三个对话框,第一个对话框为主对话框,所对应的类为CTMD ...
- MFC中对话框类(Dialog)的应用
转载http://hi.baidu.com/jackywdx/item/feee8041d2c2e12310ee1e85 Windows应用程序通常是通过对话框接收用户输入.向用户输出信息,本节介绍应 ...
- ListCtrl添加右键菜单(在对话框类中)
在对话框类中如何添加NM_RCLICK消息: ListCtrl控件右键单击选择属性 在右侧属性栏中选择控件事件 在控件事件中找到NM_RCLICK并添加 完成,写代码
- 线程的函数中调用MFC对话框类的变量
线程的函数中调用MFC对话框类的变量多线程传输文件的对话框 现在想要在对话框上添加一个进度条 为进度条映射变量m_progress这就需要在传输一段文件后就更新m_progress的值使进度条前进 也 ...
随机推荐
- Linux下复制粘贴快捷键
1. 在控制台下: 1.1.鼠标选中要复制的文本,按鼠标中键,即为复制 或者 1.2.复制命令 ...
- 【暑假】[深入动态规划]UVa 1380 A Scheduling Problem
UVa 1380 A Scheduling Problem 题目: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=41557 ...
- HW6.17
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...
- spring3.0的BeanFactory上下文context获取不到bean
开门见山,背景: 系统初始化的时候扫包实例化bean,然后一个工具类实现ServletContextAware接口,拿到servletContext之后: WebApplicationContextU ...
- Android实例-OrientationSensor方向传感器(XE8+小米2)
相关资料: <修复 XE8 for Android 方向传感器 headingX,Y,Z 不会动的问题>:http://www.cnblogs.com/onechen/p/4497282. ...
- [C++]VisualAssistX中文注释提示错误 解决办法
问题情况:Visual Assist X中文注释为提醒注释错误,而且在注释下面以红线标.问题原因:这是因为Visual Assist X认为中文的注释是拼写错误.问题处理: 1.打开 Microsof ...
- hdoj 2151 Worm【动态规划】
Worm Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- swift 内存管理,WEAK 和 UNOWNED
因为 Playground 本身会持有所有声明在其中的东西,因此本节中的示例代码需要在 Xcode 项目环境中运行.在 Playground 中可能无法得到正确的结果. 不管在什么语言里,内存管理的内 ...
- [置顶] 解成电OJ1003真实的谎言的记录
原题目 Description N个人做一个游戏,游戏中每个人说了一句话(可能是真的也可能是假的) 第i个人说:“N个人中有至少有ai个,至多有bi个人说的是真话!”(i = 1, 2, 3….. ...
- HTML5要点(一)
一.标签: <!-- -->:注释:cmd +/ <!DOCTYPE html><!--HTML5 专属版本声明标签(表明该页面使用HTML编写),代码最上层--> ...