gpt4 book ai didi

java - 更改 SWT 标签中某些单词的颜色?

转载 作者:行者123 更新时间:2023-12-03 23:18:08 25 4
gpt4 key购买 nike

在 Swing 中,可以使用 HTML 来设置标签上文字的样式。例如,如果我想将标签上的某个词加粗或使用不同的颜色,我可以使用 HTML 来实现。

SWT 是否有等效的功能?假设我将“一只敏捷的棕色狐狸跳过一只懒惰的狗”作为标签文本,并且我想将“狐狸”的颜色更改为棕色,我该怎么做?

最佳答案

如果你真的需要一个Label,你可以使用下面的代码。否则我会建议 StyledText (如评论中所述):

public static void main(String[] args) {
final Display display = new Display();
final Shell shell = new Shell(display);
shell.setLayout(new FillLayout());

Label label = new Label(shell, SWT.NONE);
label.setText("Blue and not blue");

Color blue = display.getSystemColor(SWT.COLOR_BLUE);

final TextLayout layout = new TextLayout(display);
layout.setText("Blue and not blue");
final TextStyle style = new TextStyle(display.getSystemFont(), blue, null);

label.addListener(SWT.Paint, new Listener() {
@Override
public void handleEvent(Event event) {
layout.setStyle(style, 0, 3);
layout.draw(event.gc, event.x, event.y);
}
});

shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();

}

StyledText 看起来像这样:

public static void main(String[] args) {
final Display display = new Display();
final Shell shell = new Shell(display);
shell.setLayout(new FillLayout());

StyledText text = new StyledText(shell, SWT.NONE);
text.setEditable(false);
text.setEnabled(false);
text.setText("Blue and not blue");

Color blue = display.getSystemColor(SWT.COLOR_BLUE);

StyleRange range = new StyleRange(0, 4, blue, null);

text.setStyleRange(range);

shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}

关于java - 更改 SWT 标签中某些单词的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12331271/

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