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.
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:
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);
}
}