Converter textfield em um int vetor

9 respostas
JamesBond

Pessoal, fiz um textfield em vetor … vejam um trecho do codigo abaixo:

JFrame frame = new JFrame();
final JTextField[] t;
int vetor[] = new int[8];
int v;

t = new JTextField[9];
	        
frame.setLayout(new FlowLayout());
for(v = 0; v < 9; v++) {
    frame.add(t[v] = new JTextField(3));
}
	        
for(v = 0; v < 9; v++) {
   vetor[v] = Integer.parseInt(t[v]);
}

no frame, exibe 9 jtextfield certo ? e esses textfield sao numeros … ai eu gostaria de guardá-los em um vetor int … mas ta dando erro … alguem poderia me dar uma luz ae ?!

vlw

9 Respostas

alves.Felipe

ola,
esta dando que tipo de erro?? esta reclamando que o tipo dos dados estão errados?
vc não teria q fazer um Integer.parseInt(""), para transformar de String para int…

JamesBond

alves.Felipe:
ola,
esta dando que tipo de erro?? esta reclamando que o tipo dos dados estão errados?
vc não teria q fazer um Integer.parseInt(""), para transformar de String para int…

o erro que esta dando eu nao sei … simplesmente reclama do parseInt …

alves.Felipe

coloca um try catch e mostra StackTrace…

JamesBond

o seguinte erro que aparece la:

Exception in thread “AWT-EventQueue-0” java.lang.Error: Unresolved compilation problem:
The method parseInt(String) in the type Integer is not applicable for the arguments (JTextField)

V

O que o JAVA está reclamando é que o método estático “parseInt” da classe Integer recebe um objeto do tipo “String” como parâmetro e o que você está passando pra ele é um objeto do tipo “JTextField”…

tenta fazer assim

Integer.parseInt(t[v].getText();)
alves.Felipe

nessa parte aqui, vetor[v] = Integer.parseInt(t[v]);
voce esta jogando para o vetor um JTextField.. ai pipoca mesmo..
cria uma String que receba o valor do JTextField, não o objeto. Ai faz o parse nessa Srting..
assim:
[code]
String valor="";
for(v = 0; v < 9; v++)
{
valor =t[v].getValue();
vetor[v] = Integer.parseInt(valor.trim());
}
algo assim...entendeu??

JamesBond

pessoal … nao ta dando certo … coloquei do jeito do vtr.oliveira e alves.Felipe … e nao deu …
ta dando o seguinte erro: For input string: “”

alves.Felipe

cara…

faz ums System.out.println por ai… e ve se tem os valores certo…

String valor=""; for(v = 0; v < 9; v++) { valor =t[v].getText(); System.out.println("valor: "+valor); vetor[v] = Integer.parseInt(valor.trim()); }

netShot

Já tentou algo do tipo :

Um dos erros que vai ocorrer com o seu código é (quando compilar) :

Ocorre que você está tentado passar um valor sem uma string no Integer.parseInt(String s)

Depois vai dar o erro :

Ocorre devido ao tamanho dos arrays serem diferentes.

Olha a correção do seu código: Fiz as pressas mas funciona rsrs

JFrame frame = new JFrame();
JTextField[] vetText = new JTextField[9];

int vetor[] = new int[9];

frame.setLayout(new FlowLayout());
for ( int ordem = 0 ; ordem < vetText.length; ordem ++ ) {
	frame.add( vetText[ordem] = new JTextField(3));
	vetText[ordem].setText(Integer.toString(ordem));
}

for ( int ordem = 0 ; ordem < vetText.length; ordem ++ ) {
	vetor[ordem] = Integer.parseInt( vetText[ordem].getText() );
}

frame.pack();
frame.setVisible(true);
Criado 7 de maio de 2008
Ultima resposta 7 de mai. de 2008
Respostas 9
Participantes 4