Foro de elhacker.net

Programación => 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
Código:
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
  1. public boolean isNumeric(String s) {
  2. try {
  3. Integer.parseInt(s);
  4. return true;
  5. } catch(NumberFormatException ex) {
  6. return false;
  7. }
  8. }

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
  1. if(!textField.getText().isEmpty()) {
  2. if(isNumeric(textField.getText())) {
  3. for(int i = 0; i < textField.getText().length(); i++) {
  4. // Convertir el digito a double:
  5. double value = Double.parseDouble(textField.getText().charAt(i) + "");
  6. textArea.setText(textArea.getText() + "\n" + textField.getText().charAt(i));
  7. }
  8. }
  9. }

Saludos.

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