Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

JTextField Größe festlegen

Empfohlene Antworten

Veröffentlicht

Hallo,

ich habe in meinem Programm einige JTextFields auf meinen Panels angeordnet.

Nun möchte ich jedoch, dass diese nur eine bestimmte Größe (Länge) haben.

public JTextField txf_test;

txf_test = new JTextField(6);

txf_test.setText("BlaBla");

Mein txf_test wird jedoch viel länger dargestellt und ich kann auch viel mehr eingeben.

Wie kann ich es so ändern, dass in das txf_test nur 6 Zeichen eingegeben werden können und es auch nur so groß angezeigt wird ?

Ich habe es auch schon mit der java.swing.text.PlainDocument class wie auf: http://www.codeguru.com/java/articles/444.shtml beschrieben versucht aber irgendwie ändert sich nichts und zusätzlich wird meine Texteingabe herausgelöscht bzw. nicht mehr angezeigt.

//txf_test.setDocument(new JTextFieldLimit(6));

Cu Sylvi :confused:

Hi,

wie Du schon bemerkt hast, tut der Konstruktor von JTextfield nicht das was du erwartet hast. Soweit ich weiß, dient der Konstruktor nur dazu, dass das Textfeld seine gewünschte Größe innerhalb eines GridLayouts kennt.

Wie Du es anzeigen lässt, dass es nur die Breite für 6 Zeichen anzeigt hängt vom Layout das du verwendest ab. (Breite wäre nur bei Schriften wie Courier fix?)

Die Klasse JTextFieldLimit diu Du da verwendest sollte allerdings funktionieren. Habe sie jetzt nicht kopiert und ausprobiert, nehme aber mal an, dass sie zuverlässig funktioniert.

Bist Du dir sicher, dass Du sie fehlerfrei in Deinen Source übernommen hast? ;)

Eigentlich sollte kein Text gelöscht werden. Das das textfeld keinen Text anzeigt, könnte daran liegen, dass der Text der eingefügt werden soll länger als 6 Zeichen ist. Wie befüllst Du das Textfeld? Nur durch manuelle Eingaben? Wird das mit Werten aus einer DB oder einer File gefüllt? Hängen da vielleicht Leerzeichen dran oder so? (Eventuell vorher String.trim() verwenden o.ä.)

Gruß, Peter

Fixe Größe festlegen!!!

JTextField jtf = new JTextField();

jtf.setColumns(6);

Fixe Größe festlegen!!!

JTextField jtf = new JTextField();

jtf.setColumns(6);

Was dasselbe macht wie: txf_test = new JTextField(6);

http://de.geocities.com/uweplonus/faq/swing.html#zeichenBeschraenken

oder mit JFormattedTextField arbeiten. (seit JDK 1.4)

new JFormattedTextField(new MaskFormatter("******"))

Gruß Jaraz

Hallo,

hier der Quellcode verkürzt:

:mod:


import javax.swing.*;

import java.awt.*;

import java.awt.event.*;


public class TestLayout extends JFrame 

{

    public TestLayout() 

    {init();}


    private JPanel MainPanel, CenterPanel, EastPanel, CenterNorthPanel, CenterCenterPanel, CenterSouthPanel;

    private JPanel CenterCenterNorthPanel, CenterCenterCenterPanel, CenterSouthNorthPanel, CenterSouthCenterPanel;


    private JMenuBar mb_funktions;


    private JMenu m_file, m_info;


    private JMenuItem mi_close;


    private JTextField txf_sorttxt3, txf_sorttxt4, txf_sorttxt5, txf_barcode, txf_s, txf_error;

    private JTextField txf_e, txf_mf_new, txf_mf_old, txf_sortart1, txf_sortart2, txf_sortart3, txf_sortart4;

    private JTextField txf_sortart5, txf_sorttxt1, txf_sorttxt2, txf_nb, txf_print, txf_sf_new, txf_sf_old;


    private JLabel lb_ausgabe, lb_barcode, lb_bspausgabe, lb_bspe, lb_s, lb_empty1;

    private JLabel lb_empty2, lb_error, lb_e, lb_mf_new, lb_mf_old, lb_sort, lb_sortart;

    private JLabel lb_sorttxt, lb_nb, lb_print, lb_sf_new, lb_sf_old;


    private JButton btn_checkezn;  


    private void init() {

        MainPanel = new JPanel();

        CenterPanel = new JPanel();

        EastPanel = new JPanel();

        CenterNorthPanel = new JPanel();

        CenterCenterPanel = new JPanel();

        CenterSouthPanel = new JPanel();

        CenterCenterNorthPanel = new JPanel();

        CenterCenterCenterPanel = new JPanel();

        CenterSouthNorthPanel = new JPanel();

        CenterSouthCenterPanel = new JPanel();


        mb_funktions = new JMenuBar();


        m_file = new JMenu();

        m_info = new JMenu();


        mi_close = new JMenuItem();


        lb_empty1 = 	new JLabel();

        lb_bspe = new JLabel();

        lb_e = new JLabel();

        lb_s = new JLabel();

        lb_sort = new JLabel();

        lb_sortart = new JLabel();

        lb_sorttxt = new JLabel();

        lb_ausgabe = new JLabel();

        lb_empty2 = 	new JLabel();

        lb_bspausgabe = new JLabel();

        lb_mf_new = new JLabel();

        lb_mf_old = new JLabel();

        lb_sf_new = new JLabel();

        lb_sf_old = new JLabel();

        lb_print = new JLabel();

        lb_nb = new JLabel();

        lb_barcode = new JLabel();

        lb_error = new JLabel();


        txf_e = new JTextField(31);

        txf_s = new JTextField(2);

        txf_mf_new = new JTextField();

        txf_mf_old = new JTextField();

        txf_sf_new = new JTextField();

        txf_sf_old = 	new JTextField();

        txf_print = new JTextField();

        txf_barcode = new JTextField();

        txf_nb = new JTextField();

        txf_error = new JTextField();

        txf_sortart1 = new JTextField(1);

        txf_sorttxt1 = new JTextField(31);

        txf_sortart2 = new JTextField(1);

        txf_sorttxt2 = new JTextField(31);

        txf_sortart3 = new JTextField(1);

        txf_sorttxt3 = new JTextField(31);

        txf_sortart4 = new JTextField(1);

        txf_sorttxt4 = new JTextField(31);

        txf_sortart5 = new JTextField(1);

        txf_sorttxt5 = new JTextField(31);


        btn_checkezn = new JButton();


        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        setName("frame");

        setSize(500, 450);


        setJMenuBar(mb_funktions);

        mb_funktions.add(m_file);

        mb_funktions.add(m_info);


        m_file.add(mi_close);


        MainPanel.setLayout(new BorderLayout());

        MainPanel.add(CenterPanel, BorderLayout.CENTER);

        MainPanel.add(EastPanel, BorderLayout.EAST);

        getContentPane().add(MainPanel, BorderLayout.CENTER);


        CenterPanel.setLayout(new BorderLayout());

        CenterPanel.add(CenterNorthPanel, BorderLayout.NORTH);

        CenterPanel.add(CenterCenterPanel, BorderLayout.CENTER);

        CenterPanel.add(CenterSouthPanel, BorderLayout.SOUTH);


        EastPanel.add(btn_checkezn);


        CenterNorthPanel.setLayout(new GridLayout(3, 2, 1, 1));

        CenterNorthPanel.add(lb_empty1);

        CenterNorthPanel.add(lb_bspe);

        CenterNorthPanel.add(lb_e);

        CenterNorthPanel.add(txf_e);

        CenterNorthPanel.add(lb_s);

        CenterNorthPanel.add(txf_s);


        CenterCenterPanel.setLayout(new BorderLayout());

        CenterCenterPanel.add(CenterCenterNorthPanel, BorderLayout.NORTH);

        CenterCenterPanel.add(CenterCenterCenterPanel, BorderLayout.CENTER);


        CenterCenterNorthPanel.add(lb_sort); 


        CenterCenterCenterPanel.setLayout(new GridLayout(6, 2, 1, 1));

        CenterCenterCenterPanel.add(lb_sortart);

        CenterCenterCenterPanel.add(lb_sorttxt);

        CenterCenterCenterPanel.add(txf_sortart1);

        CenterCenterCenterPanel.add(txf_sorttxt1);

        CenterCenterCenterPanel.add(txf_sortart2);

        CenterCenterCenterPanel.add(txf_sorttxt2);

        CenterCenterCenterPanel.add(txf_sortart3);

        CenterCenterCenterPanel.add(txf_sorttxt3);

        CenterCenterCenterPanel.add(txf_sortart4);

        CenterCenterCenterPanel.add(txf_sorttxt4);

        CenterCenterCenterPanel.add(txf_sortart5);

        CenterCenterCenterPanel.add(txf_sorttxt5);


        CenterSouthPanel.setLayout(new BorderLayout());

        CenterSouthPanel.add(CenterSouthNorthPanel, BorderLayout.NORTH);

        CenterSouthPanel.add(CenterSouthCenterPanel, BorderLayout.CENTER);


        CenterSouthNorthPanel.add(lb_ausgabe);


        CenterSouthCenterPanel.setLayout(new GridLayout(9, 2));

        CenterSouthCenterPanel.add(lb_empty2);

        CenterSouthCenterPanel.add(lb_bspausgabe);

        CenterSouthCenterPanel.add(lb_mf_new);

        CenterSouthCenterPanel.add(txf_mf_new);

        CenterSouthCenterPanel.add(lb_mf_old);

        CenterSouthCenterPanel.add(txf_mf_old);

        CenterSouthCenterPanel.add(lb_sf_new);

        CenterSouthCenterPanel.add(txf_sf_new);

        CenterSouthCenterPanel.add(lb_sf_old);

        CenterSouthCenterPanel.add(txf_sf_old);

        CenterSouthCenterPanel.add(lb_print);

        CenterSouthCenterPanel.add(txf_print);

        CenterSouthCenterPanel.add(lb_barcode);

        CenterSouthCenterPanel.add(txf_barcode);

        CenterSouthCenterPanel.add(lb_nb);

        CenterSouthCenterPanel.add(txf_nb);

        CenterSouthCenterPanel.add(lb_error);

        CenterSouthCenterPanel.add(txf_error);


        lb_bspe.setText("1234567890123456789012345678901");

        lb_e.setText("E-Nr.:");

        lb_s.setText("S-Nr:");

        lb_sort.setFont(new Font("MS Sans Serif", 1, 14));

        lb_sort.setText("Sort-Texte");

        lb_sortart.setText("Sort-Text-Art/code");

        lb_sorttxt.setText("Sort-Text");

        lb_bspausgabe.setText("1234567890123456789012345");

        lb_ausgabe.setFont(new Font("MS Sans Serif", 1, 14));

        lb_ausgabe.setText("Ausgabeformen");

        lb_mf_new.setText("Ma-Form new");

        lb_mf_old.setText("Ma-Form old");

        lb_sf_new.setText("So-Form new");

        lb_sf_old.setText("So-Form old");

        lb_print.setText("Druck-Form");

        lb_barcode.setText("Barcode-Form");

        lb_nb.setText("Nb");

        lb_error.setText("Fehler");


        txf_s.setText("AA");

        //txf_controlbyte.setDocument(new JTextFieldLimit(2));

        txf_mf_new.setEditable(false);

        txf_mf_old.setEditable(false);

        txf_sf_new.setEditable(false);

        txf_sf_old.setEditable(false);

        txf_print.setEditable(false);

        txf_barcode.setEditable(false);

        txf_nb.setEditable(false);

        txf_error.setEditable(false);


        btn_checkezn.setText("Eingabe pr\u00fcfen");

        btn_checkezn.setAlignmentX(0.5F);


        m_file.setText("Datei");

        m_info.setText("Info");


        mi_close.setText("close");

        mi_close.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent evt) {

            	mi_closeActionPerformed(evt);

            }

        });


        setVisible(true);

        pack();

        addWindowListener(new WindowAdapter() 

        		{

        			public void windowClosing(WindowEvent we) 

        			{

        					System.out.println("Closing Window ...");

        					System.exit(0);

        			}

        		});

    }


    public static void main(String args[]) {

    	TestLayout tl = new TestLayout();

		tl.setVisible(true);

		tl.init();

    }    

}

jede Sort-Text-Art : 1 Zeichen

S-Nr: 2 Zeichen

jeder Sort-Text : 31 Zeichen

E-Nr: 31 Zeichen

______________________________________________

Leider brauche ich aber genau die Anordnung, also vielleicht hat noch einer ne Ahnung.

LG Sylvi :rolleyes:

Beim GridLayout werden die Komponenten immer in gleicher Größe dargestellt. Vielleicht probierst as mal mit einem anderen Layout.

FlowLayout ???

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.