Swing MaskFormatter Maske Variabel anpassen

Hallo Zusammen,
ich habe eine Frage bezüglich des Java MaskFormatter's.
Ich schreibe an einem Programm, dass durch Knopfdruck, den Inhalt aus einer Texteingabe
mit einem String aus einem array abgleichen soll.
Dafür benutze ich den MaskFormatter.
Java:
MaskFormatter formatTfield = new MaskFormatter("U*,U*,U*,U*,U*,U*,U*,U*");

Dieser funktioniert jedoch nicht wie gewollt.
Der MaskFormatter soll automatisch variabel entweder nur einen Buchstaben,
oder eben einen Buchstabe und ein Zeichen akzeptieren.
Bei der Eingabe soll entsprechend das Format dahingehend angepasst werden,
dass keine Leerstellen mehr in der Texteingabe enthalten sind.

Um zu verdeutlichen, was ich mir vorstelle, hier ein Beispiel: _ = Leerzeichen
Anstatt: A_,B#,C_,D_,E_ ,F#
das => A,B#,C,D,E,F#


Habt ihr eine Idee wie sich dies umsetzen lassen könnte?

Vielen Dank schonmal im Voraus.
In diesem Sinne wünsche ich euch noch einen schönen Restabend.

Liebe Grüße
Django

Hier der komplette Beispielcode:
Java:
;
//// LIBARIES IMPORTIEREN
import java.awt.EventQueue;

import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JOptionPane;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.text.MaskFormatter;

import java.awt.Color;
import java.awt.Font;
import java.awt.SystemColor;
import java.text.ParseException;

public class test {

    // VARIABLEN + ARRAY
    String[] SarrTest = new String[2];{

        SarrTest[0] = "A,B,C,D,E,F,G,H";
        SarrTest[1] = "A#,B#,C,D#,E#,F#,G,H#";
    }
   
    public int zufallszahl;
    private JFrame frame;
    private JFormattedTextField textField;

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    test window = new test();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
    public test() {
        initialize();
    }

// FRAME
    private void initialize() {
        frame = new JFrame();
        frame.setBounds(100, 100, 468, 319);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);
       
        textField = new JFormattedTextField();
        textField.setBounds(76, 85, 313, 20);
            try {
                MaskFormatter formatTfield = new MaskFormatter("U*,U*,U*,U*,U*,U*,U*,U*");
                formatTfield.install(textField);

                } catch (ParseException ex) {
    
            }
        frame.getContentPane().add(textField);
        textField.setColumns(10);
       
        // BUTTON
    JButton btnNewButton = new JButton("New button");
    btnNewButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
 
                int zufallszahl1 = (int) ((Math.random()* 2));
                zufallszahl = zufallszahl1;
                System.out.println(zufallszahl); // FÜR TESTZWECKE
                System.out.println(SarrTest[zufallszahl]); // FÜR TESTZWECKE

                String TfieldEingabe = textField.getText();
              
                    if (TfieldEingabe.equals(SarrTest[zufallszahl])) {
                        JOptionPane.showMessageDialog(null, "RICHTIG!");
                        System.out.println("Richtig!"); // FÜR TESTZWECKE

                    } else {

                        JOptionPane.showMessageDialog(null, "FALSCH!");
                        System.out.println("FALSCH!"); // FÜR TESTZWECKE
        }
                   
            }
        });
    btnNewButton.setBounds(160, 156, 113, 23);
    frame.getContentPane().add(btnNewButton);
    }
}
 
Hallo Robat,
Vielen Dank! Durch deinen Tipp habe ich eine Lösung finden können.
Für alle die ein ähnliches Problem haben hier der Code : (Bezogen auf den von mir oben geposteten Beispielcode)
Code:
String TfieldEingabeChange = TfieldEingabe.getText().replaceAll(" ", "");
Viele Grüße
-DjangoDieMango
 

Ähnliche Java Themen

Neue Themen


Oben