zoukankan      html  css  js  c++  java
  • 关于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之间的数值.当输入的值不在这个范围内时,窗口的下方会出现文字提示.

    并且"确定"按钮置灰.

    运行结果:

  • 相关阅读:
    make clean,make distclean与make depend的区别
    HSTS 与 307 状态码
    阿里云CentOS中vsftp安装、配置、卸载
    vsftp管理脚本(CentOS6用)
    通过修改源码,免插件实现wordpress去除链接中的category
    (转载)Peter Norvig:十年学会编程
    BT觀念分享和常見問題彙整
    Mysql 字符编码
    Mysql 整数类型的字段的属性设置及常用的函数
    MySql快速入门
  • 原文地址:https://www.cnblogs.com/DreamDrive/p/4169427.html
Copyright © 2011-2022 走看看