2017-09-28 77 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的字符的顏色'? –