Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: charmedever en 10 Julio 2012, 01:24 AM

Título: Ayuda JTextField
Publicado por: charmedever en 10 Julio 2012, 01:24 AM
Hola q tal amigos tengo un problema sucede q quiero ingresar 10 numero desde un JTextField y por ejemplo pongo 123 y tengo q imprimirlo en un JTextArea y me aparece asi:
123
123
....
Mi pregunta es como puedo hacer que aparezcan asi
1
2
3
Y que la cadena la convierta a double o int antes de ser mostrada al JTextArea
Anexo code

txtEntrada.addActionListener(new ActionListener ()
        {
            public void actionPerformed (ActionEvent e)
            {
                if (e.getSource()==txtEntrada)
                {
                    for (int i=0; i<N.length; i++)
                    {
                       N[i]=Double.parseDouble(txtEntrada.getText());
                       txtAsc.append(N[i]+"\n");
                       
                    }
                }
            }
        });

Variables declaradas asi:
double [] N = new double [10];
JTextField txtEntrada = new JTextField ("Ingresar 10 numeros",10);
JTextArea at1 = new JTextArea ();

Espero me hayan entendido
Título: Re: Ayuda JTextField
Publicado por: leogtz en 10 Julio 2012, 06:32 AM
Es sencillo, lo que tienes que hacer primero, es checar si el número introducido por el usuario es un número entero, por ejemplo, yo lo hice con una función, la cual llamé isNumeric:

Código (java) [Seleccionar]
public boolean isNumeric(String s) {
try {
Integer.parseInt(s);
return true;
} catch(NumberFormatException ex) {
return false;
}
}


Luego utilicé un botón para cuando se dé clic en él pasar el texto del textfield al textarea, puse esto en el evento:

Código (java) [Seleccionar]
if(!textField.getText().isEmpty()) {
if(isNumeric(textField.getText())) {
for(int i = 0; i < textField.getText().length(); i++) {
// Convertir el digito a double:
double value = Double.parseDouble(textField.getText().charAt(i) + "");
textArea.setText(textArea.getText() + "\n" + textField.getText().charAt(i));
}
}
}


Saludos.

PD: No sé porqué el GeSHi indenta de más mi código :s.