首页 > 代码库 > 关于JFace中的输入值(InputDialog)对话框类

关于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         @Override33         public String isValid(String newText) {34             float value = http://www.mamicode.com/0;35             try {36                 value =http://www.mamicode.com/ 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之间的数值.当输入的值不在这个范围内时,窗口的下方会出现文字提示.

并且"确定"按钮置灰.

运行结果:

关于JFace中的输入值(InputDialog)对话框类