Foro de elhacker.net

Programación => Java => Mensaje iniciado por: m@o_614 en 8 Febrero 2015, 03:24 am



Título: duda con eventos de boton
Publicado por: m@o_614 en 8 Febrero 2015, 03:24 am
Saludos

Tengo el siguiente código, que es una pequeña interfaz gráfica, que consta de un botón, un campo de texto y un área de texto. Esto es la parte fácil, el problema que tengo es que tengo que crear un evento de botón con un Listener. Tras dar clic al botón el contenido del campo de texto se copie hacia el area de texto, y que esta area de texto sea del tamaño suficiente para visualizar 40 columnas y 20 filas

El código que es el siguiente:

Código
  1. import java.awt.*;
  2. import java.awt.Color;
  3. import java.awt.event.*;
  4. import javax.swing.*;
  5.  
  6. class ComponentesGraficos extends JFrame implements ActionListener{
  7. private JButton boton;
  8. private JTextField campoTexto;
  9. private JTextArea areaTexto;
  10.  
  11. public ComponentesGraficos(){
  12. boton = new JButton("Agregar");
  13. campoTexto = new JTextField();
  14. areaTexto = new JTextArea();
  15.  
  16. boton.setBackground(Color.GREEN);
  17. this.getContentPane().add(boton,BorderLayout.SOUTH);
  18. this.getContentPane().add(campoTexto,BorderLayout.NORTH);
  19. this.getContentPane().add(areaTexto,BorderLayout.CENTER);
  20.  
  21. boton.addActionListener(this);
  22. }
  23.  
  24. public void actionPerformed(ActionEvent evento)
  25. {
  26. ??????
  27. }
  28. }
  29.  
  30. public class InterfazGrafica {
  31. final static int COORDENADA_X = 10;
  32. final static int COORDENADA_Y = 10;
  33. final static int ANCHURA = 200;
  34. final static int ALTURA = 200;
  35.  
  36. public static void main(String[] args) {
  37. ComponentesGraficos interfaz = new ComponentesGraficos();
  38. interfaz.setBounds(COORDENADA_X,COORDENADA_Y,ANCHURA,ALTURA);
  39. interfaz.setVisible(true);
  40. }
  41. }
  42.  

alguna idea de como hacer el evento de boton???

de antemano gracias


Título: Re: duda con eventos de boton
Publicado por: 3n31ch en 8 Febrero 2015, 03:37 am
Quieres pasar lo del JTextfield al JTextArea al pulsar el botón?

Código
  1. public void actionPerformed(ActionEvent evento) {
  2.    areaTexto.setText(campoTexto.getText()); // Envias lo del textField al textArea
  3.    campoTexto.setText(""); // limpias el textField
  4. }

Lo de las 40 columnas y 20 filas lo haces con:
Código
  1. areaTexto = new JTextArea(40,20);

Pero estas usando un BorderLayout así que el tamaño del TextArea depende del tamaño de la ventana.



PD: Tu programa no finaliza al darle a la X. agrega el siguiente código para repararlo:
Código
  1. this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
(Hazlo en el constructor ComponentesGraficos())

Te recomiendo que no utilices mas de una clase por archivo .class amenos que quieras lograr algo con esto.

También te recomiendo nunca crear clases Friendly (solo publicas o en su defecto privadas). Supongo que lo haces porque no estas trabajando con una IDE con soporte a proyectos.