2017-09-28 56 views
0

我正在使用Swing Jframe窗体在java中创建打字测试游戏。在JAVA中动态更改标签框中字符的颜色

在程序中,我比较了textfield(input)和labelbox(预定义样本)的字符。如果两者中的字符相同,则该字符的颜色在标签框中应变为绿色,否则为红色。

例如:在标签盒样品文本:这是样品

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

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

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

请引导我,如果有我应该知道的html功能或我应该用来实现此任务的java功能。提前致谢。

回答

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); 
+0

我如何比较在'JInputField'与JTextPane'的'输入的字符输入字符串中的字符,并相应地改变'JTextPane的字符的颜色'? –