Java在禁用的SWT文本字段中设置文本颜色
我正在使用一个禁用的SWT文本字段(Java在禁用的SWT文本字段中设置文本颜色,java,text,colors,swt,Java,Text,Colors,Swt,我正在使用一个禁用的SWT文本字段(import org.eclipse.SWT.widgets.text),我基本上想要设置文本颜色 我知道在JTextField中,您可以使用setDisabledTextColor(Color c)设置禁用文本的颜色,但是swt小部件文本字段有什么功能吗 非常感谢任何帮助/建议 禁用组件的颜色是由操作系统调节的内容之一,因此不可能在SWT中更改该颜色 但是,您可以将侦听器添加到SWT中。绘制并自己绘制一些内容 您可以将此作为起点: public stati
import org.eclipse.SWT.widgets.text
),我基本上想要设置文本颜色
我知道在JTextField
中,您可以使用setDisabledTextColor(Color c)
设置禁用文本的颜色,但是swt小部件文本字段有什么功能吗
非常感谢任何帮助/建议 禁用组件的颜色是由操作系统调节的内容之一,因此不可能在SWT中更改该颜色 但是,您可以将
侦听器添加到SWT中。绘制并自己绘制一些内容
您可以将此作为起点:
public static void main(String[] args)
{
final Display display = new Display();
Shell shell = new Shell(display);
shell.setText("StackOverflow");
shell.setLayout(new FillLayout(SWT.VERTICAL));
final Text normal = new Text(shell, SWT.BORDER);
final Text special = new Text(shell, SWT.BORDER);
special.addListener(SWT.KeyUp, new Listener()
{
@Override
public void handleEvent(Event e)
{
normal.setText(special.getText());
special.redraw();
}
});
special.addListener(SWT.Paint, new Listener()
{
@Override
public void handleEvent(Event e)
{
if (!special.isEnabled())
{
GC gc = e.gc;
String text = special.getText();
Rectangle bounds = special.getBounds();
gc.setBackground(display.getSystemColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND));
gc.setForeground(display.getSystemColor(SWT.COLOR_TITLE_FOREGROUND));
gc.fillRectangle(0, 0, bounds.width, bounds.height);
gc.drawText(text, 3, 2);
}
}
});
normal.setEnabled(false);
Button switchButton = new Button(shell, SWT.PUSH);
switchButton.setText("(De)activate");
switchButton.addListener(SWT.Selection, new Listener()
{
@Override
public void handleEvent(Event e)
{
special.setEnabled(!special.getEnabled());
}
});
shell.pack();
shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
display.sleep();
}
}
如下所示(第一个Text
是默认值,第二个Text
是自定义值:
谢谢你的帮助。我会在早上第一件事就开始。如果你能提供伪代码/示例代码,那将是一个巨大的好处&我会接受你的回答!