# JTextField-Array in ein JPanel einfügen



## mike (18. Feb 2004)

hallo,
habe folgendes Problem :

```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class TestFrame extends JFrame
{
	private TestPanel testPanel;
	
	public TestFrame()
	{
		testPanel = new TestPanel();
		Container contentPane = getContentPane();
		contentPane.setLayout(new BorderLayout());
		contentPane.add(testPanel,BorderLayout.CENTER);
	}
	
		
		
	public static void main(String args[])
	{
		TestFrame testFrame = new TestFrame();
		testFrame.setSize(100,100);
		testFrame.setVisible(true);

	}
}

class TestPanel extends JPanel
{
	private GridLayout gridLayout;
	private JTextField textField[];
	private int rows,columns;

	
	public TestPanel()
	{
		rows = 3;
		columns = 4;
		gridLayout = new GridLayout(rows,columns);
		setLayout(gridLayout);
		textField = new JTextField[rows*columns];
		for (int i = 0; i <= rows*columns-1; i++)
		{
			add(textField[i]);
		}
	}
}
```

Der Compiler gibt mir eine NullPointerException in add(textField_); aus, wenn ich aber ganz normale JTextField mit add(new JTextField()) einfüge, gibt es keine Probleme...
was mache ich falsch?_


----------



## bygones (18. Feb 2004)

mike hat gesagt.:
			
		

> Der Compiler gibt mir eine NullPointerException in add(textField_); aus, wenn ich aber ganz normale JTextField mit add(new JTextField()) einfüge, gibt es keine Probleme...
> was mache ich falsch?_


_

UND ??? Du sagst doch auch schon die Lösung deines Problems. Die Textfelder müssen erst initialisiert werden (mit new JTextfield()) !!_


----------



## mike (18. Feb 2004)

das mache ich doch in der Zeile textField = new JTextField[rows*columns];
Das Problem ist, dass ich zuerst nicht weiss wieviele JTextField ich haben werde, da rows und columns variabel sein sollen, sie sollen später von einer anderen Klasse als Parameter übergeben werden


----------



## Beni (18. Feb 2004)

_new JTextField[rows*columns]_ gibt einen Array _{null, null, null, ... }_
> Elemente des Arrays initialisieren.


----------



## mike (18. Feb 2004)

es läuft jetzt. Danke! hätte nicht gedacht dass die Lösung so einfach ist


----------



## Gast (4. Apr 2004)

Sry kann mir das einer bitte erklären / bzw. den veränderten quelltext hinschreiben !?

das wäre genau meine frage gewesen ....

ich krieg es nämlich nicht gebacken ein TextField array zu erstellen ...



```
TextField t[][];
int m,n;

	public test()
	{
	
                n=4;
               m=4;
                 t=new TextField[m][n];
	 
     for ( int ik = 0; ik < m; ik++ ) {
     for ( int jk = 0; jk < n; jk++ ) {
     
     	t[ik][jk].setText("test");
     	t[ik][jk].setBounds(5+30*jk,5+30*ik,30,20);
	add(t[ik][ik]);	
	
                }
	}
```


bekomme NullPointerException ....

ich versteh das nciht ....   :? 

über Hilfe wäre ich sehr dankbar !!!


----------



## Roar (5. Apr 2004)

du musst *jedes einzelne* objekt im arary initialisieren. tf[0] = new JTextFeld(); tf[1] = new JTextField(); //...


----------

