0

我有一个 JFace 对话框,其中包含 SWT Text 和一个按钮。最初,当对话框打开时,按钮应该被禁用,当我点击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 回答