0

SWT テキストとボタンを含む JFace ダイアログがあります。最初にダイアログが開いたときはボタンを無効にする必要があり、クリックするとボタンTextのキャレット位置が表示されている限りText有効にする必要があります。

これらは私が使用しているリスナーです:

text.addMouseListener(new MouseListener() 
    {
        @Override
        public void mouseDoubleClick(MouseEvent arg0) 
        {

        }

        @Override
        public void mouseDown(MouseEvent arg0) 
        {

        }

        @Override
        public void mouseUp(MouseEvent arg0) 
        {
            testButton.setEnabled(true);

        }   

    });

    text.addFocusListener(new FocusListener() {

        @Override
        public void focusLost(FocusEvent arg0) 
        {
            testButton.setEnabled(false);
        }

        @Override
        public void focusGained(FocusEvent arg0) 
        {

        }
    });

適切なリスナーを使用していますか? 提案してください

4

1 に答える 1

1

私があなたを正しく理解していれば、これはあなたが望むものになるはずです:

    button.setEnabled(false);
    button.addListener(SWT.Selection, new Listener()
    {
        @Override
        public void handleEvent(Event arg0)
        {
            button.setEnabled(false);
        }
    });

    text.addListener(SWT.FocusIn, new Listener()
    {
        @Override
        public void handleEvent(Event e)
        {
            button.setEnabled(true);
        }
    });

最初は、Buttonは無効になっています。Textがフォーカスされると有効になります。を押すと、Button再び無効になります。

于 2013-10-13T19:12:34.383 に答える