elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Ayuda con un jButton
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con un jButton  (Leído 7,496 veces)
kapotnt

Desconectado Desconectado

Mensajes: 40


Ver Perfil
Ayuda con un jButton
« en: 25 Agosto 2008, 03:11 am »

Buenas, he empezado a crear interfaces gráficas en java hace unos días y me he atascado en algo que para casi todos os resultará una tontería pero no llego a entender bien como hacer que un jButton ejecute un método de su propia clase.
El programa consiste en una serie de TextField que rellenas con una serie de datos y mi intencion es que al pulsar el botón "recoja" esos datos, los procese y finalmente los imprima en otros textfield (inicialmente vacíos). Lo que he hecho para ello es crear un método que se encargará de procesar los datos y rellenar los textfield finales con los cálculos obtenidos entonces necesito que al dar al botón "Calcular" invoque ese método, he mirado por internet durante 3 días y no he sido capaz, muchas gracias!


En línea

-Ramc-


Desconectado Desconectado

Mensajes: 495



Ver Perfil
Re: Ayuda con un jButton
« Respuesta #1 en: 25 Agosto 2008, 03:27 am »

Código:
boton.addActionListener(new ActionListener() {
      actionPerformed(ActionEvent ev) {
                 //lo que hace el boton llamadas a metodos o lo que quieras
     }
});

Deberas importar java.awt.event.*

Lee un poco acerca de eventos.


En línea


Shhh... be vewy, vewy, quiet!  I'm hunting wabbits...
LA PANDILLA MAS GRANDE DE MI CIUDAD, SE LLAMA POLICIA NACIONAL.
kapotnt

Desconectado Desconectado

Mensajes: 40


Ver Perfil
Re: Ayuda con un jButton
« Respuesta #2 en: 25 Agosto 2008, 12:45 pm »

Si pongo eso me da error en todas las lineas:

button1.addActionListener (new ActionListener() {  //package button doesn't exist
         actionPerformed (ActionEvent ev) { //cannot find symbol ; y ) expected
          calcularG(); // no da error
      }
});

gracias de nuevo
En línea

~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: Ayuda con un jButton
« Respuesta #3 en: 25 Agosto 2008, 14:41 pm »

http://www.chuidiang.com/java/novatos/hola_mundo_swing.php
En línea

sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: Ayuda con un jButton
« Respuesta #4 en: 26 Agosto 2008, 07:22 am »

bueno la unica razón por la que no te salga es que pones el codigo en cualquier parte
se siguen varias reglas para trabajar en una clase y tu con toda seguridad te as equicoda en una

las clases tiene un metodo llamado constructor el cual se aplica al instanciar la clase aca puedes poner procedimientos declarar varibles e instanciarlas

puedes reconocer un constructor por que es void(no devuelve ningun resultado) tiene el mismo nombre de la clase y no necesita decirle que es void

despues o antes del constructor ay metodos con cualquier nombre

Código:

class miclase{

//aca unicamente se pone variables y se les da algun valor
// es decir no agas ningun procedimineto
// seguramente a ca copiaste el codigo

//muy inportante: aca pones todas la variables que las vas a usar en cualquier otro //metodo

//en tu caso aca declaras que vas a usar un boton le dices cual es su nombre y lo //instancias si quieres eso depende de tu logica

JButon botonsito =new JButon();

miclase(){//este es el constructor con el mismo nombre de la clase

//aca hacemos el procedimiento que se nos de la gana
//aca puedes insertar ese codigo
}

void unmetodocualquiera(){//este es un metodo antes de su nombre esta void o
//el nombre de alguna clase


//aca tambien puedes pegar ese codigo

}
}


otra cosa inportante es que con cualquier ide(es un programa que te permite trabajar con codigos en el caso de java netbeans, Jdeveloper, eclipse,) te crea botonoes osea no te agas problemas(simplemente lo arrastras a tu ventana) y selecionas el boton y ases una operacion muy simple dependiendo del ide y te va a crear el metodo y te va a mandar a esa parte

a modo de resumen te mando el codigo completo echo en jdeveloper
ten encuenta que es exactamente lo mismo que te e explicado solo que el ide me
crea codigo en una forma diferente al resto de los ides pero el fundamentalmente simpre es exactamente lo mismo para cualquier programa en java o orientado a objetos



Código:

import java.awt.Dimension;

import java.awt.Rectangle;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;


public class Frame1 extends JFrame{
    JButton jButton1=new JButton();
   
   
    public Frame1(){//este es el constructor
        try{
           
            jbInit();
           
           
        }
        catch(Exception e){
            e.printStackTrace();
        }
    }

    private void jbInit() throws Exception{// este metodo va dentro del constructor osea que en la practica es lo mismo
        this.getContentPane().setLayout( null );
        this.setSize( new Dimension(400, 300) );
        jButton1.setText("jButton1");
        jButton1.setBounds(new Rectangle(70,85,125,40));
        jButton1.addActionListener(new ActionListener(){
                    public void actionPerformed(ActionEvent e){
                        //aca ba el codigo que se va a ejecutar al momento de pulsar
                        //el boton en este caso aplica un metodo
                        jButton1_actionPerformed(e);
                       
                    }
                });
        this.getContentPane().add(jButton1,null);

    }

// este metodo esta dentro de la accion de voton osea que se va a aplicar al machucar el boton
    private void jButton1_actionPerformed(ActionEvent e){
   
        JOptionPane.showMessageDialog(null,"mensaje al presinar el boton");
     
    }
   
    //este metodo es es el main(prinsipal) y siempre se llama de esa forma
    // esto es lo que en pseudocodigo es inicio
    //este metodo se ba a aplicar primero y simpre va en cualquier programa java
   
    public static void main(String args[]){
        JFrame frm=new Frame1();
        frm.setVisible(true);
        frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

con tu logica y tu estilo de programacion o tu ide si lo usas, lo puedes hacer diferente pero sienpre sigues las reglas que son para cualquier programa en java
En línea

sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: Ayuda con un jButton
« Respuesta #5 en: 26 Agosto 2008, 07:25 am »

 :D :D :D :D :D :D :D

tu lo as copiada en donde no tenia ni el mas minimo sentido ponerlo despues del los imports

ai solo se pone que estas jalando codigos de otras partes
 :D :D :D :D :D
En línea

CorazonValiente

Desconectado Desconectado

Mensajes: 33



Ver Perfil WWW
Re: Ayuda con un jButton
« Respuesta #6 en: 4 Septiembre 2008, 18:07 pm »


import javax.swing.JOptionPane;
public class Main extends javax.swing.JFrame {

    public Main() {
        initComponents();
           
    }
    String []dato=new String[4];
   
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jTextField1 = new javax.swing.JTextField();
        jTextField2 = new javax.swing.JTextField();
        jTextField3 = new javax.swing.JTextField();
        jTextField4 = new javax.swing.JTextField();
        Button1 = new javax.swing.JButton();
        Button2 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jPanel1.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));

        jLabel1.setText("Dato 1");

        jLabel2.setText("Dato 2");

        jLabel3.setText("Dato 3");

        jLabel4.setText("Dato 4");

        Button1.setText("Guardar");
        Button1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                Button1ActionPerformed(evt);
            }
        });

        Button2.setText("Mostar");
        Button2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                Button2ActionPerformed(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()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addComponent(jLabel1)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 103, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addComponent(jLabel2)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 103, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addComponent(jLabel3)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, 103, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addComponent(jLabel4)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, 103, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addContainerGap(13, Short.MAX_VALUE))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                        .addComponent(Button1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 12, Short.MAX_VALUE)
                        .addComponent(Button2)
                        .addContainerGap())))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .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))
                .addGap(13, 13, 13)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(13, 13, 13)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3)
                    .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel4)
                    .addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(7, 7, 7)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(Button2)
                    .addComponent(Button1))
                .addContainerGap())
        );

        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.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

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

    private void Button1ActionPerformed(java.awt.event.ActionEvent evt) {
        GetDatos(jTextField1.getText(),0);
        GetDatos(jTextField2.getText(),1);
        GetDatos(jTextField3.getText(),2);
        GetDatos(jTextField4.getText(),3);       
}

    private void Button2ActionPerformed(java.awt.event.ActionEvent evt) {
        String mostrar="";
        for (int i=0;i<4;i++){
            mostrar = mostrar + SetDatos(i)+"-";
        }
        JOptionPane.showMessageDialog(null,mostrar);
}
   
    /**
     * @param args the command line arguments
     */
    private void GetDatos(String cadena,int pos){
        dato[pos]=cadena;
    }
    private String SetDatos(int pos){
        return dato[pos];
    }
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Main().setVisible(true);
            }
        });
    }
   
    // Variables declaration - do not modify
    private javax.swing.JButton Button1;
    private javax.swing.JButton Button2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField2;
    private javax.swing.JTextField jTextField3;
    private javax.swing.JTextField jTextField4;
    // End of variables declaration
   
}

En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Desplazamiento de JButton o JLabel
Java
c0der 7 15,938 Último mensaje 21 Diciembre 2010, 21:30 pm
por Debci
filtrar Texto en un JTable conectado a un BD con un JButton y un JTextField?
Java
hack-4-life 2 8,982 Último mensaje 21 Marzo 2011, 04:35 am
por hack-4-life
Usar una imagen como JButton (NetBeans)
Java
Xedrox 2 25,866 Último mensaje 18 Abril 2011, 02:33 am
por 1mpuls0
Poner un JLabel donde estaba un un JButton
Java
goditozor 2 3,867 Último mensaje 17 Mayo 2011, 04:33 am
por 1mpuls0
Problema con JButton y ordenación « 1 2 »
Java
Mai89 13 7,541 Último mensaje 25 Agosto 2011, 12:18 pm
por Mai89
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines