适合SWT文本的监听器

时间:2013-10-13 18:00:30

标签: java swt listener

我有一个JFace对话框,其中包含SWT文本和一个按钮。最初打开对话框时,应该禁用该按钮,当我单击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) 
        {

        }
    });

我使用适当的听众吗?请建议

1 个答案:

答案 0 :(得分: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将再次被禁用。