JavaFX TextInputDialog: Focus auf Eingabefeldinhalt setzen und nach OK Inhalt leeren

BigMemo007

Aktives Mitglied
Hallo liebes Forum,

benutze für User-Eingaben einen TextInputDialog. Funktioniert soweit. Der Inhalt wird in meiner ListView angezeibt. Aber für besseren Benutzer-Exprerience möchte ich, dass beim showAndWait() aufruf, dass der Focus sofort auf dem Eingabefeld ist. Der User soll nicht separat darauf klicken müssen. Und wenn User auf OK geklickt hat, soll sich das Feld automatisch leeren, falls der User wieder etwas eingeben möchte, soll er ein blankes Feld haben.

Mein Code sieht folgendermaßen aus:

Java:
public class WorkIncome {

    private MyObjects myObjects;
    private ObservableList<String> itemList;
    private TextInputDialog inputDialog;
    private Optional<String> userInput;
    
    
    public WorkIncome(MyObjects object) {
        myObjects = object;
        itemList = FXCollections.observableArrayList();
        inputDialog = new TextInputDialog();
        inputDialog.setHeaderText("Wie soll der Einkommensposten heißen?");
        inputDialog.setContentText("Name:");

        //setItems();
    }
    
    
    public void getUserInput() {
    
        inputDialog.getDialogPane().requestFocus();
        inputDialog.getDialogPane().setFocusTraversable(true);
        inputDialog.setContentText(" ");
        userInput = inputDialog.showAndWait();
        
        userInput.ifPresent(value -> {itemList.add(value);});
            
        myObjects.getIncomeListView().setItems(itemList);
        
    }
    
    
}//end class


Ich habe viel experimentiert und viel gelesen, aber leider nichts gefunden. Soll ich vielleicht anstatt des TextInputDialogs was anderes nehmen, was einfacher zu nutzen ist? Oder ist das hier auch relativ einfach zu machen. ein setFocus() in der Form klappt nicht und ein setContenText("") leider auch nicht.
 

BigMemo007

Aktives Mitglied
So, habe meine Code verbessert. Ich habe die ListView statt String auf Label umgestellt. Sie speichert jetzt Labels ab, mit dem Vorteil, dass ich die Schriftart, -farbe, -größe, usw ändern kann. Mit String geht das nicht und die ListView-Cells einzustellen, ist fast Hirnbrand :)). So ist es viel einfacher :))

Java:
public void addItemIncome() {
    
        addUserInput = inputDialog.showAndWait();
    
        //userInput.isPresent gibt true zurück, wenn OK gedrückt wurde. Bei Klick auf Abbrechen 
        // gibt sie false zurück.
        if (addUserInput.isPresent() && !addUserInput.get().trim().isEmpty()) {
            
            Label l = new Label(addUserInput.get());
            l.setFont(Var.fontSmall);
            itemList.add(l);
            
            myObjects.getIncomeListView().setItems(itemList);
        }

        inputDialog.getEditor().setText("");
            
    }//addItemIncome


Mit "inputDialog.getEdit().setText("");" wird der alte Inhalt geleert. Das funktioniert.

Leider kann ich mit "inputDialog.getEdit().requestFocus();" nicht den Focus auf das Eingabefeld setzen lassen. Der Befehl bewirkt irgendiw nichts.
Kann mir da jemand helfen? Es muss doch inrgendwie machbar sein. Der Focus liegt per Default auf dem OK-Button. Auch viel Experimentieren mit setFocusTraversable(true) hat keinen Erfolg gebracht.
 

mihe7

Top Contributor
Soll ich vielleicht anstatt des TextInputDialogs was anderes nehmen, was einfacher zu nutzen ist? Oder ist das hier auch relativ einfach zu machen. ein setFocus() in der Form klappt nicht und ein setContenText("") leider auch nicht.
Erzeuge einfach immer einen neuen Dialog, dann ist das Eingabefeld stets leer und erhält beim Anzeigen den Fokus.
 

BigMemo007

Aktives Mitglied
Erzeuge einfach immer einen neuen Dialog, dann ist das Eingabefeld stets leer und erhält beim Anzeigen den Fokus.

Ist das nicht Ressourcenverschwendung (RAM)? Immer wieder neue Objekte erstellen? Oder ist das so minimal, dass es vernachlässigbar ist? Oder ist das keine Ressourcenverschwendung, weil der Garbage Collektor sich um die Zombi Objekte kümmert?
 

BigMemo007

Aktives Mitglied
So ist es. Du kannst inputDialog als lokale Variable deklarieren; nach der Methode wird diese dann "freigegeben" (-> darf vom GC abgeräumt werden).

Vielen Dank für die Hilfestellung. Genauso hab ich es gemacht und das Programm macht, das was ich will :) Tut mir aber leid, wenn ich immer alle paar Tage hier reinkomme um Feedback zu euren Tipps zu geben. Leider ist meine Zeit begrenzt. Meistens kann ich an Wochenenden, was auch Kacke ist, da das reinkommen in den Code mehr Zeit kostet, als wenn ich jeden Tag was machen könnte.

Aber mit euren Hilfen gehts immer weiter. :)) Vielen Dank.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K JavaFX TextInputDialog Button Text ändern AWT, Swing, JavaFX & SWT 1
E Focus auf titledborder AWT, Swing, JavaFX & SWT 8
A JPanel austauschen und Focus geben AWT, Swing, JavaFX & SWT 3
xYurisha Gui Focus von JTextField weglenken AWT, Swing, JavaFX & SWT 6
O Focus zwischen Chat und Spiel wechselns AWT, Swing, JavaFX & SWT 3
T bekomme keinen Focus auf JTextField AWT, Swing, JavaFX & SWT 3
fLooojava JButton [Focus) AWT, Swing, JavaFX & SWT 4
K JavaFX Focus Listener für gesamte Scene AWT, Swing, JavaFX & SWT 1
C JOptionPane.showConfirmDialog() -> Focus auf NEIN -> Enter gibt YES_OPTION zurück AWT, Swing, JavaFX & SWT 6
T SWT Button soll nur sichbar sein,wenn im Textfeld der Focus ist AWT, Swing, JavaFX & SWT 4
B Swing JTextfeld bekommt nur jedes Zweite mal Focus AWT, Swing, JavaFX & SWT 11
E JTextPane Focus AWT, Swing, JavaFX & SWT 1
D ComboBoxCellEditor Refresh beim Focus AWT, Swing, JavaFX & SWT 4
A Swing Focus der Radio Buttons + text bleibt gleich und gleichzeitige ausgabe zweier Objekte in 1. Fenster AWT, Swing, JavaFX & SWT 3
A Focus Problem AWT, Swing, JavaFX & SWT 4
I focus an ein jdialog geben AWT, Swing, JavaFX & SWT 3
B JInternalFrame Focus setzten geht nicht AWT, Swing, JavaFX & SWT 2
A Swing Focus auf gemalte Component AWT, Swing, JavaFX & SWT 5
H Swing JTextField in JWindow, JWindow bekommt focus zurück? AWT, Swing, JavaFX & SWT 9
M Swing Focus für Buttons deaktiviert --> keine Reaktion mehr auf Tastendrücke AWT, Swing, JavaFX & SWT 5
M focus subFrame AWT, Swing, JavaFX & SWT 3
G Force Focus für JButton AWT, Swing, JavaFX & SWT 2
lumo SWT Composite Focus AWT, Swing, JavaFX & SWT 2
T disabled Checkbox soll trotzdem Focus bekommen AWT, Swing, JavaFX & SWT 9
C Swing Focus Management AWT, Swing, JavaFX & SWT 3
lumo SWT Table Selection Color +Focus Out AWT, Swing, JavaFX & SWT 14
H Swing Focus bekommen AWT, Swing, JavaFX & SWT 4
D Swing keine Tabellen Zeilen ohne Focus AWT, Swing, JavaFX & SWT 7
Screen Focus Problem , KeyListener, TextField , Key AWT, Swing, JavaFX & SWT 4
L AWT Focus auf Fenster setzen AWT, Swing, JavaFX & SWT 4
H warum kann ich das focus event nicht abfangen ? AWT, Swing, JavaFX & SWT 5
L Swing Input Focus eines JTextFields in einer JList AWT, Swing, JavaFX & SWT 2
A Focus in JTable Cell AWT, Swing, JavaFX & SWT 3
A Focus für JApplet AWT, Swing, JavaFX & SWT 7
R Focus ermitteln AWT, Swing, JavaFX & SWT 2
C JTable Focus Handling AWT, Swing, JavaFX & SWT 2
Nitram Swing Focus im JFrame AWT, Swing, JavaFX & SWT 10
I Swing Focus Listener bei PComboBox von pswing Erweiterung AWT, Swing, JavaFX & SWT 7
V Swing Problem mit Focus setzen AWT, Swing, JavaFX & SWT 7
thE_29 Swing JTabbedPane Focus von Komponenten außerhalb AWT, Swing, JavaFX & SWT 10
B JTable getselectedrow liefert -1 wenn Focus verloren AWT, Swing, JavaFX & SWT 4
S Versuch den Focus zu klauen detektieren? AWT, Swing, JavaFX & SWT 14
SebSnake JFrame "Focus" erzwingen (wie JOptionPane) AWT, Swing, JavaFX & SWT 3
V JTabbedPane - keine "Focus"-Box auf selektiertem T AWT, Swing, JavaFX & SWT 2
L Focus für KeyListener auf verschiedene Panels AWT, Swing, JavaFX & SWT 2
O Focus im GBL steuern. AWT, Swing, JavaFX & SWT 3
K Focus an das JPanel übergeben AWT, Swing, JavaFX & SWT 2
K Focus-Problem AWT, Swing, JavaFX & SWT 9
O TextBoxen Focus über Pfeiltasten steuern AWT, Swing, JavaFX & SWT 3
G Problene mt Focus unter Swing AWT, Swing, JavaFX & SWT 7
G JTable und Focus AWT, Swing, JavaFX & SWT 30
D Beim Starten ein JTextfield Focus geben AWT, Swing, JavaFX & SWT 7
J JTextPane bekommt keinen Focus! AWT, Swing, JavaFX & SWT 3
P TextFeld Focus entfernen AWT, Swing, JavaFX & SWT 2
F Problem mit Actions, TextComponents und Focus AWT, Swing, JavaFX & SWT 2
K Focus mit Mouseclick auf JPanel setzen AWT, Swing, JavaFX & SWT 4
D Focus auf JPanel setzen AWT, Swing, JavaFX & SWT 2
B JTable - Focus - TabTaste AWT, Swing, JavaFX & SWT 2
D Focus in bestimmter Celle in JTable AWT, Swing, JavaFX & SWT 3
B Komponente in JTable bekommt keinen Focus AWT, Swing, JavaFX & SWT 3
M Focus beim öffnen eines neuen JFrames AWT, Swing, JavaFX & SWT 6
O JTextField- Selection / Focus bei nicht editierbaren Feldern AWT, Swing, JavaFX & SWT 2
J Focus auf JFrame AWT, Swing, JavaFX & SWT 3
B Focus für Textfeld AWT, Swing, JavaFX & SWT 5
B im JTree Focus setzen und navigieren AWT, Swing, JavaFX & SWT 3
B JInternalFrame in den Vordergrund rücken + Focus AWT, Swing, JavaFX & SWT 15
D JTable: Focus auf Zelle markiert ihren Text zum editieren AWT, Swing, JavaFX & SWT 2
C Komponente mit Focus bevor JButton-Klick merken. AWT, Swing, JavaFX & SWT 6
L Focus setzen AWT, Swing, JavaFX & SWT 3
G JTabbedPane, Focus, ChangeListener AWT, Swing, JavaFX & SWT 1
B Focus in JOptionPane AWT, Swing, JavaFX & SWT 2
J Focus-Problem bei Vollbildmodus AWT, Swing, JavaFX & SWT 7
A Combobox Focus-Events, Tab in Tabelle AWT, Swing, JavaFX & SWT 7
F Fenster in den Vordergrund aber nicht im Focus AWT, Swing, JavaFX & SWT 21
O Abfrage ob eine bstimmte Komponente den Focus hat AWT, Swing, JavaFX & SWT 4
T JTable Focus auf Zelle setzen AWT, Swing, JavaFX & SWT 3
R Focus durch "tabben" von JTable Zelle auf andere K AWT, Swing, JavaFX & SWT 8
R Focus speeren AWT, Swing, JavaFX & SWT 2
K JList - merkwürdiges Verhalten bei Leertaste (unter Focus) AWT, Swing, JavaFX & SWT 7
W Components Focus mit TAB-Taste VERTIKAL bewegen AWT, Swing, JavaFX & SWT 4
V JTextField Focus Cursor setzen AWT, Swing, JavaFX & SWT 2
D jcolorchooser - lost focus AWT, Swing, JavaFX & SWT 2
R Focus auf bereits geöffnetes Fenster setzen AWT, Swing, JavaFX & SWT 9
O Welche Möglichkeit zum Focus setzen! AWT, Swing, JavaFX & SWT 2
R JMenu copy Focus-Problem AWT, Swing, JavaFX & SWT 2
M Focus einstellen AWT, Swing, JavaFX & SWT 3
G Focus so setzen, daß in einer jTextArea der Cursor blinkt AWT, Swing, JavaFX & SWT 7
G JTable: Rahmen bei Focus um Zelle AWT, Swing, JavaFX & SWT 2
thE_29 Modaler Dialog - close on not focus AWT, Swing, JavaFX & SWT 3
P Focus auf JFrame AWT, Swing, JavaFX & SWT 5
G JOptionPane verliert Focus AWT, Swing, JavaFX & SWT 3
A JTree Problem mit Focus bzw. Selection AWT, Swing, JavaFX & SWT 5
C Focus setzen AWT, Swing, JavaFX & SWT 2
G JTree Focus setzen AWT, Swing, JavaFX & SWT 2
F HILFE!!! Focus-Probleme bei unterschiedlichen Panel's AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben