Frage

Ich (sehr auf wundersame Weise) beantwortete meine eigene Frage, als ich diese Frage schrieb, aber es war so ein Fund, den ich mit allen teilen wollte. Ich verstehe, dass dies wahre "Fragen" sein sollte, aber es war ein monumentaler Fund für mich. Es gibt jedoch eine "Frage" unten, die beantwortet werden kann.

Ich habe eine benutzerdefinierte Klasse erstellt, die einen JToggleButton erweitert. In dieser Klasse entferne ich alle Standard -Mouselistener, damit sie nur Mausaktionen akzeptieren, wenn ich das Objekt für bereit halte. Das Problem, das ich hatte, war die Manipulation des JtoggleButtons ImageCon (Seticon ()). Wenn die Schaltfläche nicht auf dem Bildschirm angezeigt wurde (nicht sichtbar aufgrund eines JScrollPane), als ich die ausgewählte Taste mitteilte, würde das ImageCon verschwinden. In ähnlicher Weise würde das ImageCon auch verschwinden, wenn ich das ImageIcon während der Auswahl der Taste modifizierte.

Es stellt sich heraus, dass ich in meinem benutzerdefinierten Mouselistener GetModel.SetSelected (True) anstelle von getModel.setpressed (true) verwendet habe. Anscheinend habe ich kein klares Verständnis für den Unterschied zwischen ausgewählten und gepressten, aber es reicht aus, dies zu sagen, dass mein Problem behoben wurde. Meine "Frage" wäre daher die Klarstellung zu diesen beiden Begriffen.

Verwenden Sie zusammen, verwenden Sie setSelected () auf einer Schaltfläche nicht, wenn Sie SETPressed () verwenden möchten. Was für ein Schmerz, diesen zu verfolgen! Ich hoffe aufrichtig, dass dies jemand anderem hilft. E-Mail ist gültig, aber ein Spam-Catcher.

War es hilfreich?

Lösung

Ok, ich fand wieder meine eigene Antwort, also dachte ich, ich würde diese Frage teilen und schließen. Eine Schaltfläche ist "ausgewählt", wenn sie ein Kontrollkästchen/ein Radio -Symbol enthält. Eine Taste wird "gedrückt", wenn der Knopf gedrückt wurde. JtoggleButtons anscheinend anscheinend beide Attribute in Kombination verwenden, um die Taste "Klicken und drücken" zu verwenden.

Der Grund, warum die ImageCons verschwunden waren, war, dass ich versehentlich gemischtes SetPrisesicon ()/setpressed () und setSelectedicon ()/setSelected () hatte. Weil ich die Terminologie verwirrt hatte und den Unterschied nicht erkannte, war ich in meiner Nutzung inkonsistent.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top