Author Topic: como programar un boton en netbeans 6  (Read 12085 times)

grenyer

  • Newbie
  • *
  • Posts: 3
  • Karma: 0
    • View Profile
como programar un boton en netbeans 6
« on: Febrero 27, 2008, 06:21:29 am »
Buenos días.
Favor si son tan amables de ayudarme.
Tengo la siguiente pregunta:
Lo hice para practicar, cree una ventana en netbeans6, le puse:

IP:  "cuadro de texto"  "un boton"

Quiero que cuando apriete "un boton", en el "cuadro de texto" aparezca el mensaje, boton apretado.

Suena tonto, jiji, pero no puedo programarlo.
Saludos.


chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5051
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: como programar un boton en netbeans 6
« Reply #1 on: Febrero 27, 2008, 06:31:50 am »
Hola:

No conozco netbeans, pero lo que hay que hacer es añadirle un ActionListener al botón por medio de su método addActionListener(). El ActionListener es el que se ejecutará cuando se pulse el botón. Imagino que entre las propiedades del botón en netbeans, habrá algo para añadirle esto. Si no, puedes hacerlo directamente desde código.

Aquí tienes una especie de hola mundo con swing.

Se bueno.

grenyer

  • Newbie
  • *
  • Posts: 3
  • Karma: 0
    • View Profile
Re: como programar un boton en netbeans 6
« Reply #2 on: Febrero 27, 2008, 07:03:33 am »
Gracias por tu ayuda. esta bueno el programita.

Pero la verdad, el objetivo de utilizar el netbeans es: el poder dibujar la ventana con los botones y cuadros, etc, deseados, para no hacer esto a mano., y irme a cada elemento (boton, cuadro de texto), entre otros, para asi realizar las acciones que deseo.  Ya escribi por mucho tiempo en texto plano muchos programas en C, lo que no quiero es hacer lo mismo en Java, por lo menos ahorrarme el escribir los elementos mencionados.
Copio y pego lo que me creo el netbeans 6.0.1: imagina lo que me ahorré en tiempo el no esribir esto:

/*
 * WOL_ver01UI.java
 *
 * Created on 26 de febrero de 2008, 10:42 PM
 */

package my.wol_ver01;

/**
 *
 * @author  bgarcia
 */
public class WOL_ver01UI extends javax.swing.JFrame {
   
    /** Creates new form WOL_ver01UI */
    public WOL_ver01UI() {
        initComponents();
    }
   
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                         
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jTextField1 = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("WOL por IP individual"));

        jLabel1.setText("Escriba el IP:");

        jTextField1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField1ActionPerformed(evt);
            }
        });

        jButton1.setText("WOL");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 98, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jButton1)
                .addContainerGap(119, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton1))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                       

    private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
       
    }                                           

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
       
    }                                       
   
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new WOL_ver01UI().setVisible(true);
            }
        });
               
    }
   
    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JTextField jTextField1;
    // End of variables declaration                   
   
}

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5051
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: como programar un boton en netbeans 6
« Reply #3 on: Febrero 27, 2008, 07:14:51 am »
Hola:

El método jButton1ActionPerformed() está vacío. Ese es el método que se ejecutará al pulsar el botón. Mete ahí el código que quieras.

Se bueno.

grenyer

  • Newbie
  • *
  • Posts: 3
  • Karma: 0
    • View Profile
Re: como programar un boton en netbeans 6
« Reply #4 on: Febrero 27, 2008, 09:40:35 am »
Gracias por tu tiempo.

Lo q voy hacer es leer un poco sobre swing antes de seguir mortificandome, y despues seguire con lo de ese metodo

una cosa que si no habia visto es lo siguiente:

jTextField1.addActionListener(new java.awt.event.ActionListener()
    {
        public void actionPerformed(java.awt.event.ActionEvent evt)
        {
             jTextField1ActionPerformed(evt);
        }
    }
);   <---  este parentesis es el de .addActionListener

( () {{}} ); dentro de parentesis redondos hay corchetes.  ??? :o

     
nose ni como interpretarlo.

gracias por tu ayuda. escribire mas adelante, Saludos.

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5051
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: como programar un boton en netbeans 6
« Reply #5 on: Febrero 27, 2008, 10:33:37 am »
Hola:

Es una característica de java, que permite definir clases sobre la marcha.

ActionListener es una interface, por lo que no se puede instanciar, ya que tiene el método actionPerformed() sin código. Es incorrecto hacer esto.

Code: [Select]
new ActionListener();
Tendrías que hacerte una clase que implemente eso y luego instanciar esa clase

Code: [Select]
public class MiClase implements ActionListener
{
   public void actionPerformed (ActionEvent e)
   {
      // Aqui tu codigo
   }
}
....
jTextField1.addActionListener(new MiClase());

Sin embargo, java permite que definas esta clase "sobre la marcha". Basta instanciar el ActionListener y poner detrás, entre llaves, la definción de la clase

Code: [Select]
ActionListener miListener = new ActionListener() {
   public void actionPerformed (ActionEvent e)
   {
      // Aqui tu codigo
   }
}
...
jTextField1.addActionListener(miListener);

y en el caso concreto de tu ejemplo, tienes la "dificultad" añadida de que estás haciendo todo esto como parámetro de una llamada a un método, sin usar la variable auxiliar miListener.

Code: [Select]
jTextField1.addActionListener ( /*aqui la definicion de ActionListener sobre la marcha */ );
Se bueno.
« Last Edit: Febrero 27, 2008, 10:35:42 am by chuidiang »