Hallo,
momentan versuche ich das NimbusLookAndFeel in eine Anwendung zu integrieren.
Leider scheint Nimbus jedoch keine Änderung an der Darstellung vorzunehmen, sofern eine Komponente auf "uneditable" gesetzt wird.
Da ich keinen entsprechenden Eintrag in den Defaults gefunden habe, dachte ich mir es wäre vielleicht stattdessen möglich die entsprechen "ComponentUI"-Subklasse zu überschreiben.
Dazu habe ich testweise eine eigene Klasse definiert:
Nun bin ich mir jedoch unsicher wie ich das LookAndFeel dazu bringen kann nun diese Klasse zu verwenden anstatt der ursprünglichen.
Im Internet bin ich auf folgenden Lösungsansatz gestoßen:
Das hat bei mir jedoch nicht funktioniert, meine selbst erstellte Klasse scheint nicht einmal aufgerufen zu werden.
Hat jemand eine Ahnung woran das liegen könnte?
momentan versuche ich das NimbusLookAndFeel in eine Anwendung zu integrieren.
Leider scheint Nimbus jedoch keine Änderung an der Darstellung vorzunehmen, sofern eine Komponente auf "uneditable" gesetzt wird.
Da ich keinen entsprechenden Eintrag in den Defaults gefunden habe, dachte ich mir es wäre vielleicht stattdessen möglich die entsprechen "ComponentUI"-Subklasse zu überschreiben.
Dazu habe ich testweise eine eigene Klasse definiert:
Java:
class Test extends javax.swing.plaf.basic.BasicTextFieldUI{
public static javax.swing.plaf.ComponentUI createUI(JComponent c){
return new Test();
}
@Override
protected void paintBackground(Graphics g){
if(!getComponent().isEditable()){
g.setColor(TxtDyer.GRAU);
}
g.fillRect(0, 0, getComponent().getWidth(), getComponent().getHeight());
}
}
Nun bin ich mir jedoch unsicher wie ich das LookAndFeel dazu bringen kann nun diese Klasse zu verwenden anstatt der ursprünglichen.
Im Internet bin ich auf folgenden Lösungsansatz gestoßen:
Code:
UIManager.put("ComponentUI", "fully-qualified-className-of-customUI")
//also enstprechend in meinem Programm:
UIManager.put("BasicTextFieldUI", Test.class.getName());
Das hat bei mir jedoch nicht funktioniert, meine selbst erstellte Klasse scheint nicht einmal aufgerufen zu werden.
Hat jemand eine Ahnung woran das liegen könnte?