Swing JCheckBox, setEnabled(false) und HTML Text Problem

Grizzly

Top Contributor
Hallo zusammen,

ich bin gerade über ein interessantes Problem gestolpert, dass mir so vorher noch nicht aufgefallen ist:
Ich habe eine JCheckBox, welche ich mit setEnabled(false) deaktiviere. Dann setze ich eine Beschriftung als HTML Text. Doch irgendwie stimmen dann die Farben nicht mehr. Normalerweise ist eine deaktivierte JCheckBox ausgegraut. In meinem Fall sieht sie aber ganz normal aus (Text sowie das Kästchen davor) - zumindest die Farben betreffend. Sie ist aber deaktiviert sprich reagiert nicht auf Eingaben des Benutzers. Vielleicht ein Bug?

Java:
	private JCheckBox getDruckBonVerbuchenStaplerterminalCheckBox() {
		if (this.druckBonVerbuchenStaplerterminalCheckBox == null) {
			this.druckBonVerbuchenStaplerterminalCheckBox = new JCheckBox();
			this.druckBonVerbuchenStaplerterminalCheckBox.setText(
					TextKit.toHTMLText("Bon beim Verbuchen im Staplerterminal "
							+ "drucken"));
			this.druckBonVerbuchenStaplerterminalCheckBox.setEnabled(false);
		}
		return this.druckBonVerbuchenStaplerterminalCheckBox;
	}

Java:
	public static String toHTMLText(final String text) {
		StringBuffer sb = new StringBuffer("<html><head></head><body>");
		String[] lines;
		
		if (text == null) {
			throw new IllegalArgumentException("Argument text is null.");
		}
		lines = text.split("\\n", -1);
		for (int index = 0; index < lines.length; index++) {
			sb.append(lines[index]);
			if (index < lines.length - 1) {
				sb.append("<br>");
			}
		}
		sb.append("</body></html>");
		return sb.toString();
	}

Bei den ersten 3 Checkboxen ist die Beschriftung ganz normal gesetzt. Die letzte Checkbox hat HTML als Beschriftung, damit der automatische Umbruch funktioniert. Wie man gut erkennen kann, ist die Farbe anders.

attachment.php
 

Anhänge

  • Screenshot.png
    Screenshot.png
    3,8 KB · Aufrufe: 62

Monaria

Aktives Mitglied
Vllt liegt es daran, dass das die HTML Standard-Farbe für Schrift ist.
Du könntest einen zusätzlichen boolean Parameter einrichten, um toHTMLText zu sagen, ob die Box enabled ist.
Dann muss der Text aber jedes mal neu gesetzt werden, wenn das Kästchen disabled/enabled wird.
Außerdem weiß ich nicht, ob #999999 für alle LAFs korrekt ist. Aber ob man die Farbe irgendwo abfragen kann weiß ich nicht.

Java:
String color = "";
if(!enabled)
	color = "<style>body{color: #999999;}</style>";
StringBuffer sb = new StringBuffer("<html><head> " + color + "</head><body>");
 

Grizzly

Top Contributor
Okay, das mit der Farbe wäre ja noch herauszubekommen. Ich könnte ja einfach die anderen deaktivierten JCheckBox Komponenten befragen. Aber dann wäre das Kästchen vorne vermutlich immer noch in einer anderen Farbe, da dieses ja eine Grafik (bzw. Icon) ist und normalerweise mit dem Text in keinerlei Verbindung stehen sollte.
 

Grizzly

Top Contributor
Ich kann dir glaube ich nicht mehr folgen.

[...]

Ich kann keinen Unterschied zwischen den Kästchen erkennen :bahnhof:

Ups :oops: , auf meinem Monitor sah es so aus, als wäre auch das Kästchen in einer anderen Farbe. Muss wohl dort die unterschiedliche Schriftfarbe so gewirkt haben. Habe es gerade nochmal im Grafikprogramm in der Vergrößerung angeschaut und - Du hast recht - die Farbe ist absolut identisch.

Das war eigentlich auch mein Hauptproblem, dass sich damit in Luft aufgelöst hat. ;)
 

Grizzly

Top Contributor
Die Farbe bekommt man übrigens folgendermaßen:
Java:
Color color = UIManager.getDefaults().getColor("CheckBox.disabledText");
Muss man dann halt noch in einen Hex Wert umwandeln und bspw. über einen <span>-Tag einbinden.
Java:
TextKit.toHTMLText("<span style=\"" + this.getHexColor() + "\">Bon beim Verbuchen im Staplerterminal drucken</span>"));
Wobei die Methode getHexColor() einfach den Farbwert als Hexwert zurück gibt, sprich bspw.
Code:
#000000
.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Falsches Rendern durch JCheckBox in eigenem JTree AWT, Swing, JavaFX & SWT 6
C JCheckBox disabled text color AWT, Swing, JavaFX & SWT 9
S JRadioButton und JCheckBox im JTree AWT, Swing, JavaFX & SWT 14
B JCheckBox ausrichten ? AWT, Swing, JavaFX & SWT 1
Paul15 JCheckBox und JToggleButton AWT, Swing, JavaFX & SWT 5
M Swing JCheckbox Namen vergeben? AWT, Swing, JavaFX & SWT 5
E Zustand der JCheckBox abfragen AWT, Swing, JavaFX & SWT 1
D JCheckbox und JSpinner in JTable AWT, Swing, JavaFX & SWT 9
K Swing JCheckbox ändern AWT, Swing, JavaFX & SWT 3
N ChangeListener und jCheckBox AWT, Swing, JavaFX & SWT 3
B JTable inkl. JCheckbox AWT, Swing, JavaFX & SWT 5
StrikeTom JCheckBox in JTable AWT, Swing, JavaFX & SWT 6
A Swing JCheckbox transparent machen AWT, Swing, JavaFX & SWT 7
Z Swing JCheckBox in einer JTable AWT, Swing, JavaFX & SWT 8
B JCheckbox ja oder nein AWT, Swing, JavaFX & SWT 3
O Jcheckbox Status nachträglich abfragen AWT, Swing, JavaFX & SWT 2
C Swing JCheckBox setEditable(false)? AWT, Swing, JavaFX & SWT 9
X Swing JCheckbox in JTable AWT, Swing, JavaFX & SWT 6
F DefaultTableCellRenderer blendet JCheckBox aus AWT, Swing, JavaFX & SWT 4
Burny91 Swing JCheckBox in JList einbetten AWT, Swing, JavaFX & SWT 4
K JCheckBox datenstruktur AWT, Swing, JavaFX & SWT 10
J Swing JCheckBox enabled, aber graues Kästchen AWT, Swing, JavaFX & SWT 2
S Swing Problem mit JCheckBox auf JPanel in JScrollPane AWT, Swing, JavaFX & SWT 8
C JCheckBox Kreuz statt Haken AWT, Swing, JavaFX & SWT 7
S Swing Werte einer Jcheckbox aus eine Klasse A in eine Klasse B aufrufen AWT, Swing, JavaFX & SWT 6
S GUI blocked after checked a JcheckBox AWT, Swing, JavaFX & SWT 2
S JCheckBox Paint AWT, Swing, JavaFX & SWT 7
M JCheckBox Icon anpassen AWT, Swing, JavaFX & SWT 2
E Matrix mit JCheckBox AWT, Swing, JavaFX & SWT 29
Balbes Änderung des Wertes von JCheckBox in einer JTable AWT, Swing, JavaFX & SWT 4
S Frage zu JCheckBox AWT, Swing, JavaFX & SWT 2
T Swing JCheckBox: Wie getState() abfragen? AWT, Swing, JavaFX & SWT 2
FoolMoon Swing JCheckBox neben Text in einer Tabelle AWT, Swing, JavaFX & SWT 2
J Icon einer JCheckBox AWT, Swing, JavaFX & SWT 6
E Swing Wechsel in JCheckBox abfangen AWT, Swing, JavaFX & SWT 10
S JCheckBox AWT, Swing, JavaFX & SWT 9
D JTable - JCheckbox und Renderer AWT, Swing, JavaFX & SWT 2
V JCheckBox in JTable AWT, Swing, JavaFX & SWT 3
T JCheckBox deselektieren (Haken wieder entfernen) - wie? AWT, Swing, JavaFX & SWT 5
W JRadioButton / JCheckBox problem AWT, Swing, JavaFX & SWT 6
K JCheckBox in einer JTable auswählbar machen AWT, Swing, JavaFX & SWT 2
J Listener erkennt Deselektierung von JCheckbox nicht AWT, Swing, JavaFX & SWT 13
T Dynamische Anpassung einer jCheckBox AWT, Swing, JavaFX & SWT 11
T JCheckBox ohne "Box"? AWT, Swing, JavaFX & SWT 6
H JCheckBox - Ist die Abfrage wirklich so umständlich ? AWT, Swing, JavaFX & SWT 3
A Problem der Größe von JCheckBox nach Hinzufügen eines Popups AWT, Swing, JavaFX & SWT 2
F Wie Item Listener zu JCheckBox(in JTable) hinzufügen? AWT, Swing, JavaFX & SWT 6
M JCheckbox, das selektieren verhindern AWT, Swing, JavaFX & SWT 9
M JCheckBox Standard MouseListener entfernen AWT, Swing, JavaFX & SWT 13
A JCheckBox abfragen AWT, Swing, JavaFX & SWT 6
J Variabler VariablenIdentifier - JCheckBox AWT, Swing, JavaFX & SWT 9
I JTree und JCheckbox Problem AWT, Swing, JavaFX & SWT 4
G jCheckBox AWT, Swing, JavaFX & SWT 8
G JMenu problem mit der Breite von einer JCheckBox AWT, Swing, JavaFX & SWT 2
D Seltsamer Rahmen bei JCheckBox AWT, Swing, JavaFX & SWT 7
G JCheckBox mit Text und Icon AWT, Swing, JavaFX & SWT 5
M JCheckbox in JCombobox AWT, Swing, JavaFX & SWT 7
L jCheckBox - aktiviert und nicht aktiviert AWT, Swing, JavaFX & SWT 7
H jCheckBox abschalten AWT, Swing, JavaFX & SWT 3
B JTextFiled, JCheckBox, JSpinner Eigenschaften speichern AWT, Swing, JavaFX & SWT 2
G JCheckbox Buttongroup Problem AWT, Swing, JavaFX & SWT 7
P JCheckBox: das 4eck mit kreuz soll rechts vom wort stehen AWT, Swing, JavaFX & SWT 3
R JCheckBox mit Image und Text AWT, Swing, JavaFX & SWT 5
G JCheckBox nicht änderbar machen AWT, Swing, JavaFX & SWT 2
V Statusabfrage von JCheckBox und JComboBox AWT, Swing, JavaFX & SWT 7
P JCheckBox AWT, Swing, JavaFX & SWT 4
L Probleme mit JCheckBox AWT, Swing, JavaFX & SWT 15
A JButton und JCheckBox im JTree reagieren nicht AWT, Swing, JavaFX & SWT 13
J JCheckBoxMenuItem und JCheckBox synchronisieren AWT, Swing, JavaFX & SWT 6
D Welche JCheckBox des Arrays ist das? AWT, Swing, JavaFX & SWT 2
P JCheckbox einmal gewählt immer gewählt ? AWT, Swing, JavaFX & SWT 2
M Weiße JCheckBox? AWT, Swing, JavaFX & SWT 5
S Herausbekommen welche JCheckBox selectiert wurde AWT, Swing, JavaFX & SWT 6
H JList.setEnabled(false) - Text soll nicht grau sein AWT, Swing, JavaFX & SWT 2
D Swing JButton.setenabled(true) funktioniert nicht AWT, Swing, JavaFX & SWT 12
J Swing JMenuItem auf setEnabled(false) setzen? AWT, Swing, JavaFX & SWT 3
Oliver530 JButton setEnabled(false) ohne Farbverlust AWT, Swing, JavaFX & SWT 3
R Swing jbutton.setEnabled(false) ohne Ausgrauung des Buttons? AWT, Swing, JavaFX & SWT 6
N setEnabled() - optisches Problem AWT, Swing, JavaFX & SWT 8
N Swing Nimbus arbeitet nicht korrekt korrekt bei setEnabled() für JMenuItem AWT, Swing, JavaFX & SWT 2
D setEnabled(false); Problem AWT, Swing, JavaFX & SWT 25
W setEnabled in Container Objekten (JScrollPane) AWT, Swing, JavaFX & SWT 5
R setEnabled bei eigenem Widget implementieren? AWT, Swing, JavaFX & SWT 3
O JPanel.setEnabled(false); auf Kindelemente funzt net? AWT, Swing, JavaFX & SWT 6
G JPanel setEnabled modal AWT, Swing, JavaFX & SWT 3
U JTable.setEnabled(false) funktioniert nicht ! AWT, Swing, JavaFX & SWT 3
V JComboBox.setEnabled(false) AWT, Swing, JavaFX & SWT 4
S Mehere Componenten setEnabled(false) in JToolBar AWT, Swing, JavaFX & SWT 4
meez JTree, TreeRenderer und setEnabled AWT, Swing, JavaFX & SWT 5
G jbutton mit linebreak. setEnabled geht nicht mehr AWT, Swing, JavaFX & SWT 4
M Farbe bestimmen, wenn JTextField.setEnabled(false) AWT, Swing, JavaFX & SWT 6
_user_q Objekt.setSelected(false), wenn es nicht mehr fokussiert wird AWT, Swing, JavaFX & SWT 2
_user_q ThreadPool schedule Wert auf false setzen AWT, Swing, JavaFX & SWT 1
L LookAndFeel JInternalFrame aussehen isSelected() true vs false AWT, Swing, JavaFX & SWT 0
M Swing "Frame.setResizable(false);" verschiebt Content? AWT, Swing, JavaFX & SWT 9
F AWT requestFocusInWindow returns false on ubuntu AWT, Swing, JavaFX & SWT 0
P jframe setVisible(false) wieder sichtbar machen? AWT, Swing, JavaFX & SWT 4
H Swing Keine Rückmeldung (freeze) bei setVisible(false) oder dispose() AWT, Swing, JavaFX & SWT 4
K 2D-Grafik interstectsLine gibt immer false zurück AWT, Swing, JavaFX & SWT 18
0 JTextPane copy/paste trotz editable(false) ? AWT, Swing, JavaFX & SWT 10

Ähnliche Java Themen

Neue Themen


Oben