Unendlich vielen JTextFields Namen zuweisen

Bingoo90

Mitglied
Hallo,
ich wollte ein Programm schreiben, das in einem JFrame links oben ein JTextField erzeugt und beim Klick in dieses ein weiteres unter sich erzeugt. Außerdem, sollte das JTextField das oberste einer Spalte sein, soll noch in einer neuen Spalte ganz oben ein JTextField erzeugt werden. Da ich die auch alle auslesen will, um sie zusammenzurechnen, muss ja jedes JTextfield einen eigenen Bezeichner haben. Wie mache ich das?
Eine JTextArea wollte ich vermeiden.
Mein bisheriger Code:
Java:
public class ZeilenUndSpalten {
	
	static void addComponent(final JFrame f, final Container cont,
                            final GridBagLayout gbl,
                            final Component c,
                            final int x, final int y,
                            final int width, final int height,
                            final double weightx, final double weighty )
   {
    GridBagConstraints gbc = new GridBagConstraints();
    gbc.fill = GridBagConstraints.BOTH;
    gbc.gridx = x; gbc.gridy = y;
    gbc.gridwidth = width; gbc.gridheight = height;
    gbc.weightx = weightx; gbc.weighty = weighty;
    gbl.setConstraints( c, gbc );
    if (gbc.gridy==0) {
    	c.addFocusListener(new FocusAdapter() {
    		public void focusGained(FocusEvent e) {
   				addComponent(f,cont,gbl,new JTextField(),x+2,y,2,2,weightx,weighty);
    			addComponent(f,cont,gbl,new JTextField(),x,y+2,2,2,weightx,weighty);
    		}
    	});
    }
    else {
    	c.addFocusListener(new FocusAdapter() {
    		public void focusGained(FocusEvent e) {
    			addComponent(f,cont,gbl,new JTextField(),x,y+2,2,2,weightx,weighty);
    		}
    	});
    }
    cont.add( c );
    f.pack();
    f.setSize(Toolkit.getDefaultToolkit().getScreenSize ());
   }
    
    public static void main(String[] args) {    	
    	JFrame window2 = new JFrame("2");
    	window2.setAlwaysOnTop(true);
    	window2.setDefaultCloseOperation(window2.EXIT_ON_CLOSE);
    	Container c = window2.getContentPane();
    	GridBagLayout gbl2 = new GridBagLayout();
    	c.setLayout(gbl2);
    	addComponent(window2, c, gbl2,new JTextField(),0,0,2,2,1.0,1.0 );
    	JButton rechnen = new JButton("Berechne Kürzesten Weg");
    	window2.pack();
    	window2.setSize(Toolkit.getDefaultToolkit().getScreenSize ());
    	window2.setVisible(true);
    }
}
 
Vielen Dank erstmal 🙂
Mein Lösungsansatz wäre jetzt, da ich die Summe jeder Spalte ausgeben möchte, dass ich für jede Spalte eine Liste von JTextFields erstelle und die dann in einer Schleife auslese.
 
Danke für deine Antwort, das Problem ist aber, das ich in den einzelnen Spalten verschieden viele Eingabezellen haben will. Ich wüsste nicht, wie das mit einer JTable geht.
 

Neue Themen


Zurück
Oben