Título: Ayuda con un jButton Publicado por: kapotnt 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! Título: Re: Ayuda con un jButton Publicado por: -Ramc- en 25 Agosto 2008, 03:27 am Código: boton.addActionListener(new ActionListener() { Deberas importar java.awt.event.* Lee un poco acerca de eventos. Título: Re: Ayuda con un jButton Publicado por: kapotnt 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 Título: Re: Ayuda con un jButton Publicado por: ~~ en 25 Agosto 2008, 14:41 pm http://www.chuidiang.com/java/novatos/hola_mundo_swing.php
Título: Re: Ayuda con un jButton Publicado por: sapito169 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:
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:
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 Título: Re: Ayuda con un jButton Publicado por: sapito169 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 Título: Re: Ayuda con un jButton Publicado por: CorazonValiente 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 } |