Java 如何使RCP切换按钮状态更可见?

Java 如何使RCP切换按钮状态更可见?,java,eclipse,swt,eclipse-rcp,eclipse-indigo,Java,Eclipse,Swt,Eclipse Rcp,Eclipse Indigo,我有一些切换按钮声明如下: button = new Button(this, SWT.TOGGLE); button.setImage(icon); 它们在我的电脑上看起来像这样: 右边的推,左边的不推 但在某些计算机上,根据操作系统的一般设置,可能很难看到按钮是否按下 我可以做些什么,使按钮的状态更加可见,而不受操作系统设置的影响 我确定应用程序使用Eclipse 3平台,并且我需要它来在从XP开始的任何桌面窗口上工作。因为我没有找到任何干净的解决方案(一种可以在不复制所有图标的情况下适

我有一些切换按钮声明如下:

button = new Button(this, SWT.TOGGLE);
button.setImage(icon);
它们在我的电脑上看起来像这样:

右边的推,左边的不推

但在某些计算机上,根据操作系统的一般设置,可能很难看到按钮是否按下

我可以做些什么,使按钮的状态更加可见,而不受操作系统设置的影响


我确定应用程序使用Eclipse 3平台,并且我需要它来在从XP开始的任何桌面窗口上工作。

因为我没有找到任何干净的解决方案(一种可以在不复制所有图标的情况下适用于所有按钮的解决方案),我按照Alexander的建议做了:

    button.addSelectionListener(new SelectionListener() {
        public void widgetDefaultSelected(SelectionEvent e) {
        }
        public void widgetSelected(SelectionEvent e) {
            button.setImage(button.getSelection() ? pushedIcon : icon);
            ...
        }           
    });
看起来是这样的:

button = new Button(this, SWT.TOGGLE);
button.setImage(icon);


在颜色设置不好的计算机上(例如,选择灰色),这将是一种改进。

在按钮选择侦听器的onSelect方法中,通过检查按钮状态,创建两个图像并用适当的图像更新按钮?@AlexanderGavrilov这是一种解决方案。我刚刚测试过它,它工作正常。你能把你的评论改成回答吗?如果有人给我一个更干净、更轻的解决方案,我不会接受,但它至少会得到+1(这可能是给未来读者的提示)。