JTextField - Maximale Zeichen begrenzen

Matze

Weltenwanderer
Hi,

ich möcht, dass in ein JTextField nicht mehr als 4 Zeichen eingegeben werden können. Selberschreiben möchte ich eine solche Funktion jetzt nicht, da ich weiß dass es eine bereits geben muss. Könnte mir bitte jemand erklähren wie ich das mit der Zeichenbegrenzung hinbekommen?

Danke im Vorraus.
 
Sorry das es so lange gedauert hat.

Ich gehe mal davon auf das du das ganze in ein JTextField haben willst um etwas Bestimmtes abzufragen.

Nein: Der Name soll nicht länger als 25 Zeichen haben, sondern
Ja: Die ISBN ist ….

Das ganze soll nach einem bestimmten Muster sein.

Code:
MaskFormatter mf=new MaskFormatter("#.###");
              mf.setPlaceholderCharacter('#');


Wenn es genau das ist was du suchst dann kann ich den Code als Beispiel anhängen.
 
Zuletzt bearbeitet:
@Mc Paul
Ist eigentlich nicht das was ich gerade suche, brauch ich aber warscheinlich später noch. Ich werde warscheinlich daruf zurück kommen

@MeinerEiner_80
Danke, hat zwar weng gebraucht, bis ich da durgestiegen bin, aber funktionert wunderbar. (Kleiner Tipp: Gib die import Anweisung mit an).
 
Zuletzt bearbeitet:
@Mc Paul
Genau das ist es!
Könntest du bitte mal den Code als Beispiel zeigen?
Danke
 
Unter diesem Beitrag steht der Code

Code:
import javax.swing.*;
import java.awt.*;

/****************************
 * Created by Paul C________*
 ****************************/
 
public class BaseFrame extends JFrame {

   BaseFrame(){
      super();

      this.setTitle("Paul );
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      this.setSize(350, 100);
      this.setVisible(true);
   }
}
 
Zuletzt bearbeitet:
Ich hoffe dir geholfen zu haben.

Code:
import javax.swing.*;
import javax.swing.text.MaskFormatter;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.text.ParseException;

/******************************
 * Created by Paul C...........   *
 * P.C. der Name ist Programm *
 ******************************/
 
public class TextEingrenzen extends BaseFrame implements ActionListener {

   JFormattedTextField field;
   JLabel result;

   TextEingrenzen() throws ParseException{
   
     JLabel header = new JLabel("Bitte bestätigen Sie Ihre Nummer!", SwingConstants.CENTER);

            result = new JLabel("Ihr Eingabe:",SwingConstants.CENTER);

     MaskFormatter mf = new MaskFormatter("#.###");
                   mf.setPlaceholderCharacter('#');

             field = new JFormattedTextField(mf);
             field.setFocusLostBehavior(JFormattedTextField.PERSIST);
             field.addActionListener(this);

     JButton button = new JButton("Eingabe");
              button.addActionListener(this);
              
     JPanel center = new JPanel(new GridLayout(1, 2));
             center.add(field);
             center.add(button);
             
     JPanel content = new JPanel(new GridLayout(3, 1));
             content.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
             content.add(header);
             content.add(center);
             content.add(result);

     this.add(content);
     this.pack();
   }

   public void actionPerformed(ActionEvent e) {
      boolean isValid = field.isEditValid();
      if(isValid) {
         try {
            field.commitEdit();
         } catch (ParseException ignored) {
            isValid = false;
          }
      }

      if(isValid) {
         result.setText(String.format("Sie haben %s eingegeben:", field.getText()));
      } else {
         result.setText("Bitte geben Sie eine Nummer ein!");
       }
   }

   public static void main(String[] args) throws ParseException {
      new TextEingrenzen();
   }
}
 
Zuletzt bearbeitet:
Zurück