java中setEnabled什么功能_Java SWT当组合框setEnabled()为false时更改文本颜色

本文探讨了在Java SWT中,如何在组合框(ComboBox)设置为禁用状态(setEnabled(false))时,改变文本颜色以提高可读性。作者提到Swing中的UIManager方法不可用,提供了使用CCombo作为替代方案,并分享了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当我在组合框上使用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.

标签:swt,java

来源: https://codeday.me/bug/20191208/2089870.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值