关于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

中的输入值.

实例代码如下:

复制代码
 1 public class InputDialog1 {
 2     public static void main(String[] args) {
 3         InputDialog1 window = new InputDialog1();
 4         window.open();
 5     }
 6     public void open() {
 7         final Display display = Display.getDefault();
 8         final Shell shell = new Shell();
 9         shell.setSize(500, 375);
10         shell.setText("SWT Application");
11         InputDialog dialog = new InputDialog(shell,"标题","请输入值","1",new MyValidator());
12         if(dialog.open() == InputDialog.OK){
13             String valueStr = dialog.getValue();
14             System.out.println("请输入值:" + valueStr);
15         }
16         shell.layout();
17         shell.open();
18         while (!shell.isDisposed()) {
19             if (!display.readAndDispatch()) {
20                 display.sleep();
21             }
22         }
23     }    
24     /**
25      * 值的验证类
26      */
27     class MyValidator implements IInputValidator {
28 
29         /**
30          * 返回null值表示值(newText)合法 返回其它字符符串(包括""这样的空字符)表示值不合法
31          */
32         @Override
33         public String isValid(String newText) {
34             float value = 0;
35             try {
36                 value = Float.valueOf(newText).floatValue();
37             } catch (java.lang.NumberFormatException e) {
38                 return "请输入数值";
39             }
40             if (value > 0 && value < 100) {
41                 return null;// 返回null表示newText合法
42             } else {
43                 return "请输入大于0小于100的数";
44             }
45         }
46     }
47 }
复制代码

这个例子中只能输入0~100之间的数值.当输入的值不在这个范围内时,窗口的下方会出现文字提示.

并且"确定"按钮置灰.

运行结果:



本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/4169427.html,如需转载请自行联系原作者

相关文章
|
8月前
vscode点击通过import引入方法名或模块名跳转其定义的文件
window点击ctrl(MAC点击command)+通过import引入的文件、方法等到,跳转到其定义的页面
581 0
|
5月前
|
JavaScript 前端开发
Vue实现Element UI框架的自定义输入框或下拉框在输入时对列表选项进行过滤,以及右键列表选项弹出菜单进行删除
本文介绍了如何在Vue框架结合Element UI库实现自定义输入框或下拉框,在输入时对列表选项进行过滤,并支持右键点击列表选项弹出菜单进行删除的功能。
133 0
|
8月前
LabVIEW创建自定义输入控件、显示控件和自定义类型2
LabVIEW创建自定义输入控件、显示控件和自定义类型2
458 2
|
8月前
LabVIEW创建自定义输入控件、显示控件和自定义类型1
LabVIEW创建自定义输入控件、显示控件和自定义类型1
153 1
|
8月前
|
JavaScript 前端开发 Java
若依框架---选中某值 其他值自动回调填充
若依框架---选中某值 其他值自动回调填充
220 0
|
Java Android开发
Spinner(列表选项框)的基本使用
这一节是想给大家介绍一个Gallery(画廊)的一个控件,尽管我们可以不通过兼容使用Gallery,不过想想还是算了,因为Gallery在每次切换图片的时候,都需要重新创建视图,这样无疑会造成很大的资源浪费!我们可以通过其他方法来实现Gallery效果,比如通过HorizontalScrollView 来实现水平滚动效果,或者编写一个水平方向的ListView~有兴趣自己谷歌!
139 0
|
Java Android开发
Eclipse中输入点号(.)不提示类成员(函数、字段)的解决办法
Eclipse中输入点号(.)不提示类成员(函数、字段)的解决办法
181 0
Eclipse中输入点号(.)不提示类成员(函数、字段)的解决办法
|
Java
JAVA设对话框的位置,setLocation/setBounds皆可
JAVA设对话框的位置,setLocation/setBounds皆可
245 0
|
Windows
MFC中修改默认启动对话框方法
// CMyAppEApp 初始化BOOL CMyAppEApp::InitInstance(){// 如果一个运行在 Windows XP 上的应用程序清单指定要// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,//则需要 InitCommonControls()。
1416 0