Versuch’s mal so: textArea.setEnabled(False);
Oder so: textArea.setHighlighter(null);
(im letzten Fall bleibt der Text aber selektierbar, die Selektion wird nur nicht visualisiert)
Hab’s mal mit der ersten Methode probiert, dann hat jedoch die TextArea eine andere Text-Farbe (Hintergrund usw. stimmt sonst):
Das liegt wohl daran, dass die Component deaktiviert ist.
Auch, wenn man über setFont die Farbe zurücksetzt, bleibt sieht man keine Veränderung - weil diese Farbe dann auch „deaktiviert“ dargestellt wird.
JTextArea normArea = new JTextArea();
myArea.setFont(normArea.getFont());```
Sollte es keine andere Lösung geben, muss ich die zweite Methode nehmen, muss dann halt die copy-Funktion schrotten... :-)
Oder gibt es einen Listener, der mich bei Selektierungen informieren kann? In der API hab ich bis jetzt nichts gefunden...
Gruß,
pcworld
Den “inactiveForeground” der TextArea können wir so ändern (Siehe auch: UIManager Defaults): UIManager.put("TextArea.inactiveForeground", new ColorUIResource(0, 0, 0));
Was genau meinst du damit?
Also ich will, dass nur bei TextAreas von einem bestimmten Typ (hab eine Klasse, die von JTextArea erbt) die Textfarbe auch, wenn die Component deaktiviert ist, immer noch schwarz ist.
Du könntest nachsuchen welche Klasse für die UI von den Textareas zuständig ist, sonst kannst du auch einfach mal probieren die setUI oder updateUI zu überschreiben und dann die UI bisschen zu beeinflussen.