SWT Tips and Samples 基礎編 > InputDialog

 

InputDialog

InputDialogはユーザーからの文字入力を受け付ける汎用的なダイアログです。Validator機能もあり、IInputValidatorインターフェースを継承したインスタンスをInputDialogのコンストラクタに持たせることで、ユーザーの入力を検証して警告メッセージを表示することが可能です。Validatorを用いないInputDialogを作る場合は、InputDialogのコンストラクタ引数にnullを与えます。アプリケーション開発には、非常に重宝するクラスです。

スクリーンショット

ソースコード (InputDialogTest.java)

import org.eclipse.jface.dialogs.IInputValidator;
import org.eclipse.jface.dialogs.InputDialog;
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.jface.window.Window;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;

public class InputDialogTest
        extends ApplicationWindow
        implements SelectionListener {

        private Button b1;
        private Button b2;

        public InputDialogTest() {
                super(null);

        }
        public static void main(String[] args) {
                ApplicationWindow w = new InputDialogTest();
                w.setBlockOnOpen(true);
                w.open();
                Display.getCurrent().dispose();
        }

        protected Control createContents(Composite parent) {
                getShell().setText("InputDialogTest");

                Composite container = new Composite(parent, SWT.NONE);
                GridLayout layout = new GridLayout();
                container.setLayout(layout);
                layout.numColumns = 1;

                b1 = new Button(container, SWT.PUSH);
                b1.setText("Open InputDialog");
                b1.addSelectionListener(this);

                b2 = new Button(container, SWT.PUSH);
                b2.setText("Open InputDialog with Validator");
                b2.addSelectionListener(this);

                return container;
        }

        public void widgetSelected(SelectionEvent e) {
                if (e.getSource() == b1){
                        InputDialog dialog =
                                new InputDialog(
                                        getShell(),
                                        "文字列の入力",
                                        "文字列を入力してください",
                                        "Initial Value",
                                        null);
                        int ret = dialog.open();
                        if (ret == Window.OK){
                            System.out.println("Value: " + dialog.getValue());      
                        }
                                        
                }
                if (e.getSource() == b2) {
                        InputDialog dialog =
                                new InputDialog(
                                        getShell(),
                                        "文字列の入力",
                                        "20文字以内の文字列を入力してください",
                                        "Initial value",
                                        new StringValidator());
                        int ret = dialog.open();
                        if (ret==Window.OK){
                            System.out.println("Value: " + dialog.getValue());
                        }
                }
        }

        public void widgetDefaultSelected(SelectionEvent e) {

        }

        class StringValidator implements IInputValidator {
                public String isValid(String str) {
                        if (str.length() > 20) {
                                return "文字列が20文字を超えています";
                        }
                        return null;
                }
        }
}


最新更新日: 2004年10月20日
 
関連リンク
Eclipse API ドキュメント
InputDialog
IInputValidator

- PR -

プレゼンテーション作成ソフト無料お試し版配信中

【Sony】大手他社よりも安い!ビジネス向け光・100Mしかも固定IP付!今なら更に初期費用最大15,000円OFF!

オフィス用品・オフィス家具 価 格 交 渉 可! 
◎ 目指せ★業界最安値 ★ ◎ オフィネット・ドットコム株式会社

注文から納品まで驚きの早さ!!【ASKULカタログ】はこちらから・・・

マイクロソフト お得な見積! まとめての購入ならオトクな方法で。ライセンスだから管理も簡単。


Copyright(C) 2003,2004 Jasmin Project. All Right Reserved.
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送