Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: _pablo17 en 13 de Abril 2016, 01:05
-
Tengo el siguiente código pero no me ejecita ¿cual puede ser el error?
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);
}
}
-
Tenías un inconveniente al declarar como vector la matriz «boton»... de modo que debería quedar algo así:
...
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 (https://www.dropbox.com/s/m30pqtob0qgsfmm/code_.png?dl=0)
-
Una posible forma de hacerlo podria ser esta.
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);
}
}
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();
}
}