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?
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:
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% 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.
Tags und Links java swing look-and-feel