我正在使用Swing Jframe表单在java中创建一个打字测试游戏。
在程序中,我正在比较textfield(输入)和labelbox(预定义样本)的字符。如果两个字符相同,则该字符的颜色应在标签框中变为绿色,否则为红色。
例如:标签框中的示例文本:这是示例
如果在文本框中输入的第一个字符为T,则标签框中的“T”应变为绿色,否则为红色。
我尝试使用label.setForeground()
选项,它会将整个文本转换为特定颜色。
我尝试使用label.setText(String.format("<html> text1 <font color='red'> text2 </font></html>"));
选项,它只会将代码之间的文字转换为相应的颜色。
请指导我,如果有我应该知道的html功能或我应该用来实现此任务的java功能。提前谢谢。
答案 0 :(得分:1)
该字符的颜色应在标签框中变为绿色,否则为红色。
不要使用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);