Я хочу переопределить метод isEnabled () в java.awt.Component и использовать его с JTextArea.
Это то, что я делаю.
Этот фрагмент кода вызывается внутри конструктора Jframe.
jTextArea1 = new javax.swing.JTextArea(){
@Override
public boolean isEnabled(){
if(getForeground()== new Color(0, 0, 0)){
return true;
}
return false;
}
};
А когда щелкнуть мышью на jTextArea1, вызывается следующая функция.
private void jTextArea1MouseClicked(java.awt.event.MouseEvent evt) {
if (jTextArea1.isEnabled()) {
jTextArea1.setForeground(Color.GRAY);
jTextArea1.revalidate();
System.out.println("gray");
} else {
jTextArea1.setForeground(Color.BLACK);
jTextArea1.revalidate();
System.out.println("black");
}
}
Я использую IDE NetBeans, поэтому автоматически генерируются списки действий.
Причина, по которой я это делаю, заключается в том, что я хочу изменить курсор мыши, когда он находится над jTextArea1. Если бы я просто использовал метод setEnabled (), курсор не изменится, когда jTextArea1 находится в состоянии «не включено». Таким образом, этот путь будет все время оставлять jTextArea1 в состоянии «включено», но при нажатии мыши на нем будет визуально отображаться включение и отключение. И если вызывается функция isEnabled (), она будет делать вид, что состояние включения изменяется при щелчке мыши.
Моя проблема в том, что он не дает ожидаемого результата. Я изначально установил цвет текста переднего плана не черный (серый). При щелчке мышью цвет не меняется на черный. И это печатает "черный".