java - JAVA动态改变标签框中字符的颜色

标签 java html swing

我正在使用 Swing Jframe 表单在 java 中创建一个打字测试游戏。

在程序中,我正在比较文本字段(输入)和标签框(预定义示例)的字符。如果两者的字符相同,则标签框中该字符的颜色应变为绿色,否则为红色。

例如:标签框中的示例文本:这是示例

如果在文本字段框中输入的第一个字符是 T,则标签框中的“T”应变为绿色,否则变为红色。

我尝试过使用label.setForeground()选项,它将整个文本变成该特定颜色。

我尝试过使用label.setText(String.format("<html> text1 <font color='red'> text2 </font></html>"));选项,它仅将代码之间的文本转换为相应的颜色。

请指导我,如果有我应该知道的 html 功能或我应该使用的 java 功能来完成此任务。提前致谢。

最佳答案

the color of that character shall turn green in the label box otherwise red.

不要为此使用 JLabel(和 HTML)。

而是使用JTextPane。您可以轻松更改单个角色的属性。

帮助您入门的简单示例:

JTextPane textPane = new JTextPane();
textPane.setText( "Hello" );

//  Define some character attributes

SimpleAttributeSet green = new SimpleAttributeSet();
StyleConstants.setForeground(green, Color.GREEN);

//  Change attributes on some existing text

StyledDocument doc = textPane.getStyledDocument();
doc.setCharacterAttributes(0, 1, green, false);

关于java - JAVA动态改变标签框中字符的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46478067/

相关文章:

java - 告诉枚举要使用什么子类类型

java - 如何在 Java 中运行 .sql 脚本(从文件)并使用 Spring 返回结果集?

html - Bootstrap 3 下拉子菜单不起作用

html - 自定义 map 图标 - 图标图像中不需要的空间问题 (css/html)

java - 如何使 JFrame 或 JPanel 可滚动

java - 如何使用map reduce获得前两个元素?

html - 如何阻止导航栏创建额外的行?

java - 边框布局无法按预期工作

java - JSlider 和 JTextField 数组更改监听器 - 从内部类引用的局部变量必须是最终的或有效的最终

java - Spring Data 和 JPA 中的递归关系?