Textfield um int zu erzeugen

Grejak

Aktives Mitglied
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:
Java:
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();
		}
	}
}
 
G

Gast2

Gast
Java:
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?
 

Final_Striker

Top Contributor
Ja, die Methode wandelt einen übergeben String in eine Zahl um.
Handelt es sich bei dem String um keine Zahl wird eine
Code:
NumberFormatException
geworfen.
 

Neue Themen


Oben