Zugreifen auf Look-and-Feel-Standardsymbole?

8

Ich möchte das ausgewählte Symbol für eine JCheckbox auf ein anderes Symbol ändern, sagen wir zum Beispiel das deaktivierte ausgewählte Symbol für eine JCheckbox. Wie kann ich das deaktivierte ausgewählte Symbol vom UIManager abrufen?

Ich habe versucht UIManager.getIcon("CheckBoxUI.disabledSelectedIcon"); Ist das der falsche Name der Icon-Eigenschaft oder ist das nur der falsche Weg, um zu dieser Ressource zu gelangen?

    
Jay R. 02.11.2009, 21:10
quelle

2 Antworten

8

Anscheinend gibt es keinen standardmäßig. Zumindest nicht, wenn ich versuche, es anzurufen.

Wenn Sie nur die Schlüssel von UIManager.getLookAndFeelDefaults().keys() ausgeben, erhalten Sie Folgendes, wenn der Schlüssel CheckBox enthält:

%Vor%

Nachdem ich akfs Antwort gelesen hatte, fing ich an, durchzuarbeiten Der UIManager-Code in den plaf.synth-Paketen und gefundenen Aufrufen, die im Wesentlichen die null disableCheckedIcon an die Look-and-Feel-Klassen delegieren, um zu versuchen, die Standard-.icon in eine graue Version zu konvertieren. Also endete ich damit:

%Vor%     
Jay R. 02.11.2009 22:24
quelle
3

Beim Durchsehen des Codes für AbstractButton scheint es so zu sein, dass disabledSelectedIcon von selectedIcon abgeleitet wird, es sei denn, es ist im AbstractButton (oder in diesem Fall JCheckBox) über setDisabledSelectedIcon angegeben. Wenn dies der Fall ist, gibt das Aufrufen von UIManager.getIcon ("...") das Objekt, das Sie suchen, nicht zurück.

BEARBEITEN:

Beachten Sie, dass eine JCheckBox ein icon -Feld hat, wie es in der AbstractButton API definiert ist, genauso wie ein JButton ein Icon haben kann. Es ist ein Bild, das neben dem Text angezeigt wird und nicht mit dem Kästchensymbol "markiert" oder "nicht markiert" übereinstimmt, auf das Sie sich beziehen.

Das Häkchen zum Aktivieren / Deaktivieren wird von einer einzelnen Klasse übernommen, die mit UIManager.getObject('CheckBox.icon') gefunden wurde. Es ist eine Unterklasse Icon und behandelt sowohl das Markieren des aktivierten als auch des deaktivierten Status. Sie können Beispiele davon in den verschiedenen [L&F name]IconFactory -Klassen sehen.

    
akf 02.11.2009 21:47
quelle

Tags und Links