JFormattedTextField values

Status
Nicht offen für weitere Antworten.
G

Gast2

Gast
Hallo zusammen,

Ich hätte noch ein paar Fragen zum JFormattedTextField
Gibt es eine Möglichkeit, dass (eventuell ProperyChangeListener), dass wenn man etwas eingibt sich sofort den neuen wert holen kann? oder man zumindest benachrichtig wird?
Und wenn ich ein default JFormattedTextField und etwas eingebe bekomme ich immer null raus...wegen?

Java:
		public static void main(String[] args){

		final JPanel contentPane = new JPanel(new GridLayout(0, 1));
		{
			final JFormattedTextField ftf = new JFormattedTextField();
			ftf.setColumns(10);
            final JButton ftf1 = new JButton("tt");
            ftf1.addActionListener(new ActionListener()
            {

                @Override
                public void actionPerformed(ActionEvent e) {
                    System.out.println(ftf.getValue());
                    
                }
                
            });
            contentPane.add(ftf);
            contentPane.add(ftf1);
		}

		final JFrame f = new JFrame("Test Frame: JFormattedTextFields"); //$NON-NLS-1$
		f.setContentPane(contentPane);
		f.pack();
		f.setLocationRelativeTo(null);
		f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		f.setVisible(true);
	}
 
Zuletzt bearbeitet von einem Moderator:

max40

Bekanntes Mitglied
statt getValue() musst du getText() verwenden!

und für das andere könnte vielleicht der KeyListener hilfreich sein

Java:
ftf.addKeyListener(new KeyAdapter() {
	@Override
	public void keyReleased(final KeyEvent e) {
		System.out.println("GedrückterWErt: " + e.getKeyChar());
		System.out.println("TextFieldValue: " + ftf.getText());
	}
});
 
Zuletzt bearbeitet:
G

Gast2

Gast
statt getValue() musst du getText() verwenden!

und für das andere könnte vielleicht der KeyListener hilfreich sein

Java:
ftf.addKeyListener(new KeyAdapter() {
	@Override
	public void keyReleased(final KeyEvent e) {
		System.out.println("GedrückterWErt: " + e.getKeyChar());
		System.out.println("TextFieldValue: " + ftf.getText());
	}
});

dass mit getText ist klar, aber unschön!!!! Muss auch mit getValue irgendwie gehen... Dafür ist methode ja gedacht ;)...

Wenn ich zum Beispiel keine falschen Werte erlaube muss er doch irgendwie den Wert neu setzen wenn ich was richtiges eingebe und darauf würde ich gern hören...
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
geändert wird bei FocusLost und ActionEvent (Enter),
dafür könntest du auch Listener adden

wenn du Pech hast, kommen aber deine Listener vor den Listenern dran, die den Value aktualisieren ;)
(oder meine einfache Sicht reicht eh nicht aus)
 

max40

Bekanntes Mitglied
zu getValue:
Object javax.swing.JFormattedTextField.getValue()
Returns the last valid value. Based on the editing policy of the AbstractFormatter this may not return the current value. The currently edited value can be obtained by invoking commitEdit followed by getValue.


Und commitEdit wird erst bei FocusLost glaube ich aufgerufen, also wenn die Eingabe beendet ist

zu deiner anderen sache habe ich nicht richtig den ablauf verstanden den du haben willst, aber vielleicht hilft dieses! An dem Beispiel wird die Eingabe von 'w' nicht erlaubt:
Java:
JFormattedTextField tf = new JFormattedTextField (){
	@Override
	protected void processKeyEvent(KeyEvent e) {
		if (e.getKeyChar() == 'w'){
			e.consume();
			return;
		}
		super.processKeyEvent(e);
	}
};
 
G

Gast2

Gast
Also ich hab ein Feld wo man keine falschen Eingaben machen kann
Java:
formatter.setAllowsInvalid(false);
Und jetzt würde ich gern bei jeder Eingabe, die getätigt wird benachrichtigt werden, falls sich der Wert ändert es muss ja der aktuelle sein, da ja keine falschen Eingaben gemacht werden können... muss ich da irgendwas im Formatter überschreiben damit ich ein Event geworfen bekomme?
 
G

Gast2

Gast
Was spircht gegen?

Java:
        formattedTextField = new JFormattedTextField() {

            @Override
            protected void processKeyEvent(KeyEvent e) {
                super.processKeyEvent(e);
                try {
                    commitEdit();
                } catch (ParseException e1) {
                    e1.printStackTrace();
                }
            }
        };
 
S

SlaterB

Gast
ansonsten könntest du noch einen DocumentListener auf das Document adden,

und JFormattedTextField benutzt anscheinend einen DocumentFilter
 
G

Gast2

Gast
Ja des hab ich schon mal probiert irgendwie hat die Sache nicht funktioniert muss ich mal raussuchen und posten...

EDIT: hier mal der code
Java:
AbstractDocument document = (AbstractDocument) formattedTextField.getDocument();
            document.setDocumentFilter(new TextDocumentFitler(this.limit));

Java:
    public class TextDocumentFilter extends DocumentFilter {
        
        private int limit;
 
        public TextDocumentFilter(int limit) {
            this.limit = limit;
        }
 
        public void insertString(FilterBypass fb, int offs, String str,
                AttributeSet a) throws BadLocationException {
 
            if ((fb.getDocument().getLength() + str.length()) <= limit)
                super.insertString(fb, offs, str, a);
            else
                Toolkit.getDefaultToolkit().beep();
        }
 
    }
aber es kommt nie in die insertString methode =(
 
Zuletzt bearbeitet von einem Moderator:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F JFormattedTextField für kg und Währung AWT, Swing, JavaFX & SWT 6
S JFormattedTextField dezimal variabler Länge AWT, Swing, JavaFX & SWT 12
Ghostman1711 Java JFormattedTextfield MaskFormatter ohne Leerzeichen AWT, Swing, JavaFX & SWT 3
N Swing JFormattedTextField keine Werte nach Formatzuweisung AWT, Swing, JavaFX & SWT 0
M European Article Number (EAN) in JFormattedTextfield AWT, Swing, JavaFX & SWT 3
L JFormattedTextField AWT, Swing, JavaFX & SWT 3
B Swing JFormattedTextField AWT, Swing, JavaFX & SWT 4
Y JFormattedTextfield - Aktualisierung und Beschränkung AWT, Swing, JavaFX & SWT 4
V Swing Nullpointer Exception bei JFormattedTextField AWT, Swing, JavaFX & SWT 4
S Swing JFormattedTextField - bei nicht korrekter Eingabe Inhalt überschreiben AWT, Swing, JavaFX & SWT 5
S Swing JFormattedTextfield markiert nicht gesamten Inhalt AWT, Swing, JavaFX & SWT 4
C Swing Button in Textfeld (JFormattedTextField) AWT, Swing, JavaFX & SWT 7
A jformattedtextfield unsichtbar und wieder sichtbar machen AWT, Swing, JavaFX & SWT 13
C Swing JFormattedTextField + Eurobetrag AWT, Swing, JavaFX & SWT 2
E Problem mit MaskFormatter und JFormattedTextField AWT, Swing, JavaFX & SWT 3
A EventListener für JFormattedTextField AWT, Swing, JavaFX & SWT 6
B Swing Betrag mit Komma aus jformattedtextfield auslesen. AWT, Swing, JavaFX & SWT 2
E Swing JFormattedTextField Live Validierung AWT, Swing, JavaFX & SWT 4
C Swing Default Werte für JFormattedTextField und Eingaben zurücksetzen AWT, Swing, JavaFX & SWT 5
G JFormattedTextField und DefaultButton AWT, Swing, JavaFX & SWT 6
B Swing JFormattedTextField auf mehreren JPanels in einer JTabbedPane AWT, Swing, JavaFX & SWT 3
R JFormattedTextField AWT, Swing, JavaFX & SWT 8
D Eingabemaske im JFormattedTextField ändern AWT, Swing, JavaFX & SWT 3
D JFormattedTextfield um Grafik erweitern AWT, Swing, JavaFX & SWT 15
N JFormattedTextField erst Verlassen, wenn Eingabe korrekt AWT, Swing, JavaFX & SWT 6
G JFormattedTextField lässt sich nicht mehr leeren AWT, Swing, JavaFX & SWT 4
N PropertyChangeListener an JFormattedTextField AWT, Swing, JavaFX & SWT 7
D Problem mit JFormattedTextField AWT, Swing, JavaFX & SWT 6
A Problem mit JFormattedTextField auslesen AWT, Swing, JavaFX & SWT 11
S JFormattedTextField und maximal 3 Stellen. AWT, Swing, JavaFX & SWT 11
M JFormattedTextField und Null-Werte AWT, Swing, JavaFX & SWT 4
E JformattedTextField, Dialog und weitere Kleinigkeiten . AWT, Swing, JavaFX & SWT 2
E Problem mit Validierende Eingabefeldern JFormattedTextField AWT, Swing, JavaFX & SWT 8
B JFormattedTextField mit DecimalFormat in ein Double AWT, Swing, JavaFX & SWT 11
C JFormattedTextField - nur bestimmte Zeichen zulassen AWT, Swing, JavaFX & SWT 3
H JFormattedTextField - Einen Preis eingeben lassen AWT, Swing, JavaFX & SWT 2
B Zeichen werden im JFormattedTextField überschrieben AWT, Swing, JavaFX & SWT 3
H JFormattedTextField AWT, Swing, JavaFX & SWT 4
W IP-Adresse mit JFormattedTextField AWT, Swing, JavaFX & SWT 5
F JFormattedTextField formatieren AWT, Swing, JavaFX & SWT 7
J [JFormattedTextField] Nur Zahlen eingebbar AWT, Swing, JavaFX & SWT 3
S [JFormattedTextField] Ja wie denn nun? AWT, Swing, JavaFX & SWT 2
G Datumseingabe mit JFormattedTextField AWT, Swing, JavaFX & SWT 4
B Wert bei JFormattedTextField automatisch aktualisieren AWT, Swing, JavaFX & SWT 2
H Frage zu JFormattedTextField AWT, Swing, JavaFX & SWT 2
G Problem mit JFormattedTextField AWT, Swing, JavaFX & SWT 3
M Datumseingabe in ein JFormattedTextfield AWT, Swing, JavaFX & SWT 2
F Problem mit JFormattedTextField AWT, Swing, JavaFX & SWT 4
A JFormattedTextField - vertical misalignment problems... AWT, Swing, JavaFX & SWT 12
P Swing JTable null values an das Ende verschieben AWT, Swing, JavaFX & SWT 2
D Funktion JList.getSelectedValues() gibt nicht alle values zurück AWT, Swing, JavaFX & SWT 2
M JComboBox und doppelte Values AWT, Swing, JavaFX & SWT 7
I Rectangle mit floating values AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben