# Textfield um int zu erzeugen



## Grejak (9. Okt 2011)

Hallo ich habe eine klasse geschrieben bei der aus einem Textfield ein int convertiert wird, doch es gibt
eine Fehlermeldung aus 

Würde mich um Hilfe sehr freuen.

Code:
	
	
	
	





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

public class ValueWindow extends JPanel implements ActionListener{

	private static final long serialVersionUID=1L;
	
	JFrame frame;
	JLabel label;
	JTextField tf;
	JButton button;

		public ValueWindow(String title,String text){
		this.setPreferredSize(new Dimension(250,40));
		label=new JLabel(text);
		this.add(label);
		tf=new JTextField(5);
		this.add(tf);
		button=new JButton("OK");
		button.addActionListener(this);
		this.add(button);
		button=new JButton("Cancel");
		button.addActionListener(this);
		this.add(button);
		frame=new JFrame(title);
		frame.add(this);
		frame.pack();
		frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		frame.setVisible(true);
	}
	public int getValue(){
		String txt=tf.getText();
		char[] convertedTxt=null;
		int numberOf=0;
		int value=0;
		
		for(int cnt=0;cnt<=txt.length();cnt++){
			try{
			convertedTxt[cnt]=txt.charAt(cnt+1);
			}catch(StringIndexOutOfBoundsException ex){System.out.println("ERROR");}
			numberOf++;
		}
		switch(numberOf){
		case 0:{break;}
		case 1:{value=(int)convertedTxt[0]*1;break;}
		case 2:{value=(int)convertedTxt[0]*10;value+=(int)convertedTxt[1]*1;break;}
		case 3:{value=(int)convertedTxt[0]*100;value+=(int)convertedTxt[1]*10;value+=(int)convertedTxt[2]*1;break;}
		case 4:{value=(int)convertedTxt[0]*1000;value+=(int)convertedTxt[1]*100;value+=(int)convertedTxt[2]*10;value+=(int)convertedTxt[3]*1;break;}
		}
		System.out.println(value);
		return value;
	}
	
	public void actionPerformed(ActionEvent event){
		String cmd=event.getActionCommand();
		if(cmd.equals("OK")){
			f=getValue();
		}
	}
}
```


----------



## Final_Striker (9. Okt 2011)

Grejak hat gesagt.:


> doch es gibt
> eine Fehlermeldung aus



Und die wäre?


----------



## Gast2 (9. Okt 2011)

```
char[] convertedTxt=null;
```
convertedTxt ist im folgenden dann immernoch null und du wirst eine NPE bekommen.
Warum initialisierst du das mit null? Oder andere Frage, musst du das mit so einem Konstrukt lösen oder kannst nicht einfach Integer.parseInt nehmen?


----------



## Grejak (9. Okt 2011)

was ist das den für eine methode ?
ich kenne die nicht


----------



## Final_Striker (9. Okt 2011)

Grejak hat gesagt.:


> was ist das den für eine methode ?



Integer#parseInt


----------



## Grejak (9. Okt 2011)

würde also heißen:

```
String test="123";
int testint=parseInt(test);
```


----------



## Final_Striker (9. Okt 2011)

Ja, die Methode wandelt einen übergeben String in eine Zahl um.
Handelt es sich bei dem String um keine Zahl wird eine 
	
	
	
	





```
NumberFormatException
```
 geworfen.


----------



## L-ectron-X (9. Okt 2011)

Nö!

So:

```
String test="123";
int testint=Integer.parseInt(test);
```


----------



## Grejak (9. Okt 2011)

OK danke


----------

