gpt4 book ai didi

Java SWT 当组合框 setEnabled() 为 false 时更改文本颜色

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:01:12 26 4
gpt4 key购买 nike

当我在组合框上使用 setEnabled()(并将其设置为 false)时,我想知道如何更改文本颜色以使其为黑色而不是灰色。我为之开发软件的人和我自己都觉得它太难阅读,而且我找不到访问文本颜色的方法。修复文本组件很容易,因为我只需要使用 setEditable() 而不是使文本颜色变灰,但是 SWT 中的组合框没有可用的 setEditable() 方法。

为了进一步说明,我尝试重写该方法,但它不会使用我的方法,而是使用下面继承的方法...

public void setEnabled (boolean enabled) {
checkWidget ();
/*
* Feature in Windows. If the receiver has focus, disabling
* the receiver causes no window to have focus. The fix is
* to assign focus to the first ancestor window that takes
* focus. If no window will take focus, set focus to the
* desktop.
*/
Control control = null;
boolean fixFocus = false;
if (!enabled) {
if (display.focusEvent != SWT.FocusOut) {
control = display.getFocusControl ();
fixFocus = isFocusAncestor (control);
}
}
enableWidget (enabled);
if (fixFocus) fixFocus (control);
}

我在这里找不到文本绘制代码,现在我变得有点困惑,因为我更熟悉具有 UIManager 的 Swing在这种情况下,它看起来像 UIManager.put( "ComboBox.disabledText", Color.black);我不确定是否有 SWT 的等价物...非常感谢任何帮助!

最佳答案

禁用组件的颜色是依赖于系统的事物之一,因此无法更改颜色。

您可以使用 CCombo 代替,它更有用并且完全符合您的要求(禁用文本为黑色,颜色可以通过 setForeground 方法设置)。参见 CCombo snippet详情..

关于Java SWT 当组合框 setEnabled() 为 false 时更改文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6529037/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com