JavaFX Editable Combobox Text-Selektierung nach Trigger

top_chief

Mitglied
Hallo, die Überschrift sagts ja eigentlich schon...
Ich suche nach einer Lösung wie man den Text einer "editable ComboBox" nach der Auswahl im Editor selektiert.

Code:
  editableComboBox.getEditor().selectAll();
hat nicht funktioniert... :-/

Danke vorab und beste Grüße
Martin
 
In was für einem EventListener hast du den obrigen Code geschrieben?
Soviel ich weiß muss es der ActionListener sein.

EDIT: Ich hab es ausprobiert und bei mir hat es funktioniert
 
Zuletzt bearbeitet:
Hallo,
danke für den Hinweis. Bei mir funktionierts leider nicht..

Java:
  combobx.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                System.out.println("ACTION COMBO");
                combobx.getEditor().selectAll();
            }
        });

Bei dir ist der ausgewählte Text in des TextFields der Combobox dann blau selektiert, sobald du den Wert in der Box per Click änderst?
 
Zuletzt bearbeitet von einem Moderator:
ja ich poste mal meinen kompletten beispielcode

Java:
import java.awt.BorderLayout;
import java.awt.event.*;
import javax.swing.JComboBox;
import javax.swing.JFrame;

public class Test implements ActionListener {
	JComboBox c;
	Test() {
		c = new JComboBox();
		c.setEditable(true);
		c.addItem("Test 1");
		c.addItem("Test 2");
		c.addItem("Test 3");
		c.addItem("Test 4");
		JFrame f = new JFrame();
		f.setSize(400,100);
		f.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);;
			}
		});
		f.add(c, BorderLayout.SOUTH);
		f.setVisible(true);
		c.addActionListener(this);
	}
	public static void main (String [] args) {		
		new Test();		
	}
	public void actionPerformed(ActionEvent e) {
		c.getEditor().selectAll();
	}
}
 
Zuletzt bearbeitet von einem Moderator:
Hallo,
habs hinbekommen 🙂 Deinen Code konnte ich leider nicht verwenden, da sich JavaFx und Swing beißt :-/ aber dafür hast du mich mit deinem Code auf eine recht simple Idee gebracht.
Vielen Dank dafür. 🙂

Habe nun in der .fxml die Methode "onHidden()" überschrieben und siehe da es klappt.

Code:
  public void comboBoxOnHidden(Event event) {
        System.out.println("comboBoxOnHidden");
        mComboBox.getEditor().selectAll();
    }

Seltsam an der Sache ist trotzdem, dass egal was ich im "Java Code" (ich meine damit die Klasse, in der die Scene "eingesetzt" ist) versucht habe, es hat nichts gebracht. Sowohl direkt den Listener (direkt) auf das Objekt (die ComboBox) gesetzt, als auch der Klasse den EventListener als Interface übergeben, gebracht hat beides Nichts.

Bzw. was auch die Nichtausführung hervorrufen könnte ist eine Besonderheit in meinem Code:
In der normalen Klasse (CardEditor) lade ich eine Vorlage (CardEditorRow <- "Sublayout" sozusagen), da die Combobox in besagtem Sublayout enthalten ist, kann ich mir vorstellen, dass das Probleme hervorrufen kann.
Was dagegen seltsam bleibt: Methodenaufrufe werden definitiv getriggert, aber das Selektieren war nicht möglich.

Strange^^

Nochmals vielen Dank 🙂
 

Zurück
Oben