Как установить цвет текста в текстовом поле Java Swing во время выполнения? При запуске цвет является сероватым, и когда пользователь вводит текстовое поле, я хочу изменить цвет на обычный текстовый цвет. В настоящее время я использую следующий код:
private void txtScheduleInfoFocusGained(java.awt.event.FocusEvent evt)
{
try
{
if (currentClassIsNewClass() && txtScheduleInfo.getDocument().getText(0, txtScheduleInfo.getDocument().getLength()).equals(PASTE_SI_HERE))
{
txtScheduleInfo.setText("");
txtScheduleInfo.setForeground(java.awt.SystemColor.textText);
}
}
catch (BadLocationException ex)
{
JOptionPane.showMessageDialog(this, "BLE\nContact Zian", "Unexpected Problem", JOptionPane.ERROR_MESSAGE);
}
}
В это время, когда код выполняется, текст все равно отображается серым цветом.
Дополнительный код:
Декларация (как поле):
private javax.swing.JTextPane txtScheduleInfo;
Инстанцирование:
txtScheduleInfo = new javax.swing.JTextPane();
Инициализация:
txtScheduleInfo.setForeground(java.awt.SystemColor.textInactiveText);
txtScheduleInfo.setText("Paste schedule information here");
txtScheduleInfo.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent evt) {
txtScheduleInfoFocusGained(evt);
}
public void focusLost(java.awt.event.FocusEvent evt) {
txtScheduleInfoFocusLost(evt);
}
});