Foro de elhacker.net

Programación => Java => Mensaje iniciado por: mousergin en 20 Marzo 2017, 20:42 pm



Título: acomodar dos gridlayout uno sobre otro
Publicado por: mousergin en 20 Marzo 2017, 20:42 pm
Hola, veran, tengo que hacer un programa que me multiplique dos matrices de 3*4 y 4*3 ingresando por pantalla numero por numero en cada uno en un textField que acomode en las matrices dentro del gridLayout. Toda la parte logica la tengo, lo que me sucede es que no se como hacer para que me muestre ambos gridlayout bien alineados, si los acomodo cada uno en el este y oeste salen muy pegados a la venta y si los acomodo ambos al centro sale solo una matriz.

Aca esta el codigo para que me puedan ayudar.
Gracias

Código
  1. package MATRIZEJ2VCA;
  2. import javax.swing.JApplet;
  3. import javax.swing.*;
  4. import java.awt.*;
  5. import java.awt.event.*;
  6.  
  7. public class MATRIZEJ2VCA extends JApplet implements ActionListener{
  8.    Container C_Ventana;
  9.    BorderLayout BL_Esquema;
  10.    GridLayout GL_Esquema_Entrada1, GL_Esquema_Entrada2;
  11.    FlowLayout FL_Esquema_Salida;
  12.    JPanel P_Entrada1,P_Entrada2, P_Salida;
  13.    JLabel L_Matriz1, L_Matriz2;
  14.    JTextField TF_Matriz1[][], TF_Matriz2[][];
  15.    JButton B_Visualizar;
  16.    JTextArea TA_Resultado;
  17.    String cadena;
  18.    int Matriz3[][];
  19.  
  20.    public void init() {
  21.  
  22.        C_Ventana=getContentPane();
  23.        BL_Esquema= new BorderLayout(5,5);
  24.        C_Ventana.setLayout(BL_Esquema);
  25.        GL_Esquema_Entrada1= new GridLayout(3,4,5,5);
  26.        GL_Esquema_Entrada2= new GridLayout(4,3,5,5);
  27.        P_Entrada1= new JPanel();
  28.        P_Entrada1.setLayout(GL_Esquema_Entrada1);
  29.        P_Entrada1.setLayout(GL_Esquema_Entrada2);
  30.        P_Entrada2= new JPanel();
  31.        P_Entrada2.setLayout(GL_Esquema_Entrada2);
  32.        FL_Esquema_Salida= new FlowLayout();
  33.        P_Salida= new JPanel();
  34.        P_Salida.setLayout(FL_Esquema_Salida);
  35.  
  36.        L_Matriz1= new JLabel("MATRIZ 3X4");
  37.        C_Ventana.add(L_Matriz1, BorderLayout.BEFORE_FIRST_LINE);
  38.        L_Matriz1.setHorizontalAlignment(SwingConstants.CENTER);
  39.        C_Ventana.add(P_Entrada1,BorderLayout.WEST);
  40.  
  41.        L_Matriz2= new JLabel("MATRIZ 4X3");
  42.        C_Ventana.add(L_Matriz2, BorderLayout.CENTER);
  43.        L_Matriz2.setHorizontalAlignment(SwingConstants.CENTER);
  44.        C_Ventana.add(P_Entrada2,BorderLayout.EAST);
  45.  
  46.        TA_Resultado=new JTextArea();
  47.        TA_Resultado.setEditable(false);
  48.        P_Salida.add(TA_Resultado);
  49.        C_Ventana.add(P_Salida, BorderLayout.SOUTH);
  50.        B_Visualizar=new JButton("VISUALIZAR");
  51.        B_Visualizar.addActionListener(this);
  52.        P_Salida.add(B_Visualizar);
  53.  
  54.        cadena="";
  55.        Matriz3= new int [3][3];
  56.  
  57.  
  58.        TF_Matriz1= new JTextField[3][4];
  59.        for(int i=0; i<3;i++){
  60.            for(int j=0; j<4; j++){
  61.                TF_Matriz1[i][j]= new JTextField();
  62.                P_Entrada1.add(TF_Matriz1[i][j]);
  63.        }//For Columnas  
  64.       }//For Filas
  65.       TF_Matriz2= new JTextField[4][3];
  66.       for(int i=0; i<4;i++){
  67.            for(int j=0; j<3; j++){
  68.                TF_Matriz2[i][j]= new JTextField();
  69.                P_Entrada2.add(TF_Matriz2[i][j]);
  70.        }//For Columnas  
  71.       }//For Filas
  72.        TA_Resultado.setText(cadena);
  73.        setSize(1000,1000);
  74.        setVisible(true);
  75.    }//INIT
  76.    public void actionPerformed(ActionEvent Evento){
  77.  
  78.        if (Evento.getSource()==B_Visualizar){
  79.            for( int i=0; i<3;i++){
  80.                for( int j=0; j<3; j++){
  81.                    Matriz3[i][j]=0;
  82.                }//For Columnas
  83.            }//For Filas
  84.            for(int j=0;j<3;j++){
  85.                for(int f=0;f<3;f++){
  86.                    for (int c=0;c<4;c++){
  87.                        Matriz3[j][f] += Integer.parseInt(TF_Matriz1[f][c].getText())*Integer.parseInt(TF_Matriz2[c][f].getText());
  88.                    }
  89.                }
  90.            }
  91.            for(int i=0; i<3;i++){
  92.                for(int j=0; j<3; j++){
  93.                    cadena+=Matriz3[i][j]+" ";
  94.                }//For Columnas
  95.                cadena+=" \n";
  96.            }//For Filas  
  97.        }//Cierre if Action performed
  98.        TA_Resultado.setText(cadena);
  99.    }//Cierre ActionPerformed
  100. }//Cierre clase
  101.  


Título: Re: acomodar dos gridlayout uno sobre otro
Publicado por: mousergin en 20 Marzo 2017, 22:44 pm
Ya lo he solucionado, simplemente cree otro grid layout para acomodar en el ambos gridLayout  ;-)