Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo Zusammen!

Ich habe eine JList mit Automarken und wenn ich irgendeinen Wert mit der Maus

direkt anwähle, wird aufgrund des valuechanged()-Ereignises der Inhalt der Auswahl (mit System.out.println(jList1.getSelectedValue()); zum testen! )

ZWEIMAL ausgegeben.

Wenn ich allerdings mit den Pfeiltasten navigiere, gibt er den Wert (z.B. BMW)

nur einmal aus?

Wer weiss Rat?

Geschrieben

Hi,

In der zugehörigen UIKlasse zur JList (javax.swing.plaf.basic.BasicListUI) gibt es eine Klasse MouseInputHandler, die das Interface MouseInputListener implementiert. In der Methode mousePressed() wird das Flag ValueIsAdjusting der zugehörigen JList auf true gesetzt. Weiterhin wird hier geprüft, ob Strg oder Shift gedrückt ist. In der Methode mouseReleased() wird das Flag wieder auf false zurückgesetzt.

Wenn also die linke Maustaste gedrückt wird, wird ein

ListSelectionEvent mit ValueIsAdjusting = true gefeuert und beim Loslassen der linken Maustaste ein weiteres ListSelectionEvent mit ValueIsAdjusting = false.

Abhilfe:

Am Anfang des Listenerbereichs, also vor deiner stdout Ausgabe folgende Zeile.

if (evt.getValueIsAdjusting()) return;

Gruß Jaraz

Lösung übrigens aus dclj Newsgroup "geklaut".

Aber ich hatte das Problem auch schon mal.

Geschrieben

bei mir hat folgendes bei einem ähnlichem problem geholfen:

du fragst ja sicher ab:

if (evt.getSource() == list_object)

{

das, was er dann machen soll;

evt.setSource = null;

}

Habe also "evt.setSource = null;" eingefügt. dann führt er "das, was er dann machen soll;" nur einmal aus.

alternativ kann man auch eine beliebig andere variable abfragen (am besten ein "boolean FLAG") dieses FLAG setzt man dann am ende um.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...