java - SWT 文本的适当监听器

标签 java swt listener

我有一个 JFace 对话框,其中包含 SWT 文本和一个按钮。最初,当打开对话框时,应该禁用该按钮,当我单击“文本”时,只要“文本”的插入符位置可见,就应该启用按钮。

这些是我正在使用的监听器:

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) 
        {

        }
    });

我使用了合适的监听器吗?请推荐

最佳答案

如果我理解正确的话,这应该是你想要的:

    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);
        }
    });

最初,按钮被禁用。一旦Text获得焦点,它将被启用。 Button 按下后将再次禁用。

关于java - SWT 文本的适当监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19348411/

相关文章:

java - 如何在 SWT 文本中设置光标位置

java - 在 SWT TableViewer 中启用单元格边框

java - 变量为空,尽管它已被设置

java - 在 Spring 中销毁的 Session 上调用 Listener 类中的服务层函数

Java MouseClick 监听器不工作

java - spring-integration DSL - 这种行为似乎不对?

java - RecyclerView 中的 null 对象引用上的 setLayoutManager

java - 如何在 Java 应用程序中使用文件的系统上下文菜单?

java - 为什么 `h`这个参数在AbstractQueuedSynchronizer中会判断两次是否为null?

java - JList:Horizo​​ntal_WRAP 安装了吗?