Autor Tema: Java clase extends JFrame implements ActionListener con JButton y eventos  (Leído 5548 veces)

_pablo17

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
Tengo el siguiente código pero no me ejecita ¿cual puede ser el error?

Código: [Seleccionar]

package guii;

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;

public class GUII extends JFrame implements ActionListener {
   
    int a,sum=0,cont=5,sum2=0,sum3=0,sum4=0,sum5=0,sum6=0,sum7=0,sum8,sum9;
    Container ctn;
    JPanel panel1, panel2;
    JButton [][] boton;
    JButton botones1[];
    JButton botones2[];
    private Object evt;
   
    public void GUII(){
       
        ctn = getContentPane();
           
           
           boton=new JButton [6][5];
            for (int i = 0; i <=6; i++) {
                for (int j = 0; j <=5; j++) {
                    boton[i][j] = new JButton();
                    panel1.add(boton[i][j]);
                     boton[i][j].addActionListener(this);
                     this.add(panel1);         
                     
      panel1.add(boton[0][0]);
      panel1.add(boton[0][1]);
      panel1.add(boton[0][2]);
      panel1.add(boton[0][3]);
      panel1.add(boton[0][4]);
     
     
        boton[0][0].setText("generar");
        boton[0][1].setText("todo");
        boton[0][2].setText("diagonal");
        boton[0][3].setText("bordes");
        boton[0][4].setText("terminar");
                }
            }


     
        panel1.add(boton[1][4]);
        for (int i = 5; i <= 25; i++) {
        }
       
        panel2=new JPanel(new GridLayout(1,2));
       
            botones1[30].setText("ver resultado");
            botones2[31].setText("borar resultado");
       
         panel2.add(botones1[30]);
         panel2.add(botones2[31]);
           
           
           
        ctn.setLayout(new BorderLayout());
        ctn.add(panel1,BorderLayout.CENTER);
        ctn.add(panel2,BorderLayout.SOUTH);
   
   
    }
    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == boton[0][0]) {
            cont=5;
            sum=0;
            for (int i = 0; i <= 4; i++) {
                for (int j = 0; j <= 4; j++) {
                     a=1;
                    sum=sum+a;
                    cont=cont+1;
                    if (i==j) {
                        sum2=sum2+a;
                    }
                    if (i+j==4) {
                        sum3=sum3+a;
                     }
                    if (i==4){
                        sum4=sum4+a;
                    }
                    if (i==3){
                        sum5=sum5+a;
                    }
                    if (j==3){
                        sum6=sum6+a;
                    }
                    if (j==3){
                        sum7=sum7+a;
                    }
                       
                }
               
            }
           
        }
        if (e.getSource()== boton[0][1]) {
            JOptionPane.showMessageDialog(null,"la suma es :"+sum);   
        }
        if (e.getSource()== boton[0][2]) {
            sum8=sum2+sum3;
            JOptionPane.showMessageDialog(null,"la suma en diagonal es  :"+sum8);
        }
        if (e.getSource () == boton[0][3]){
            sum9=sum4+sum5+sum6+sum7;
            JOptionPane.showMessageDialog(null,"La Suma de los bordes es:"+sum9);
        }
        if (e.getSource () == boton[0][4]){
            GUII.main (null);
        }
    }
   
    public static void main(String arg[]){

        GUII miVentanita = new GUII();
miVentanita.setSize(450,450);
miVentanita.setVisible(true);
}

   
    }
« Última modificación: 17 de Abril 2016, 23:29 por Alex Rodríguez »

pandorum

  • Sin experiencia
  • *
  • Mensajes: 8
    • Ver Perfil
Re:tengo el siguiente codigo pero no me ejecita cual puede ser el error
« Respuesta #1 en: 14 de Abril 2016, 01:17 »
Tenías un inconveniente al declarar como vector la matriz «boton»...  de modo que debería quedar algo así:
Código: [Seleccionar]
...
boton[i][j] = new JButton();
panel1.add(boton[i][j]);
boton[i][j].addActionListener(this);
this.add(panel1);
...

Adjunto una img donde puedes guiarte mejor:
https://www.dropbox.com/s/m30pqtob0qgsfmm/code_.png?dl=0

ESOJ

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 143
    • Ver Perfil
Una posible forma de hacerlo podria ser esta.
Código: [Seleccionar]
import java.awt.*;
import javax.swing.*;

public class ContenedorPrincipal  extends JFrame
{
    public ContenedorPrincipal(String titulo)
    {
        super(titulo);
        setVisible(true);
        setResizable(false);
        setLocation(150,20);
        setSize(450,450); 
    }

}
Código: [Seleccionar]
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class Portada extends ContenedorPrincipal implements ActionListener
{
    int a,sum=0,sum2=0,sum3=0,sum4=0,sum5=0,sum6=0,sum7=0,sum8,sum9;
    JPanel ctn;
    JPanel panel1;
    JButton [] boton=new JButton [31];;

    public Portada(){
        super("");
        setLayout(new BorderLayout(0,0));   
        panel1=new JPanel(new GridLayout(6,5));

        for (int i = 0; i <30; i++) {               
            boton[i] = new JButton("");
            panel1.add(boton[i]);

            boton[i].addActionListener(this);
            this.add(panel1); }
        boton[0].setText("generar");
        boton[1].setText("todo");
        boton[2].setText("diagonal");
        boton[3].setText("bordes");
        boton[4].setText("terminar");             
        add(panel1,BorderLayout.CENTER);           
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == boton[0]) {
            sum=0;
            for (int i = 0; i <= 4; i++) {
                for (int j = 0; j <= 4; j++) {
                    a=1;
                    sum=sum+a;
                    if (i==j) {
                        sum2=sum2+a;
                    }
                    if (i+j==4) {
                        sum3=sum3+a;
                    }
                    if (i==4){
                        sum4=sum4+a;
                    }
                    if (i==3){
                        sum5=sum5+a;
                    }
                    if (j==3){
                        sum6=sum6+a;
                        sum7=1;
                    }

                }

            }

        }
        if (e.getSource()== boton[1]) {
            JOptionPane.showMessageDialog(null,"la suma es :"+sum);   
        }
        if (e.getSource()== boton[2]) {
            sum8=sum2+sum3;
            JOptionPane.showMessageDialog(null,"la suma en diagonal es  :"+sum8);
        }
        if (e.getSource () == boton[3]){
            sum9=sum4+sum5+sum6+sum7;
            JOptionPane.showMessageDialog(null,"La Suma de los bordes es:"+sum9);
        }
        if (e.getSource () == boton[4]){
            setVisible(false);new Portada ();
        }
    }
    public static void main(String arg[]){

       new Portada();

}
}

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".