Hack x Crack - Comunidad de Seguridad informática

Programación => Java y Android => Mensaje iniciado por: SMS en Diciembre 13, 2012, 05:04:54 pm

Título: [Aporte] GridLayout
Publicado por: SMS en Diciembre 13, 2012, 05:04:54 pm
Bueno el programa va a quedar algo así:

(http://www.appkubos.com/java/images/gridlayout.png)

Creamos 1 clase llamada gridlayout

Código: [Seleccionar]
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import javax.swing.*;

public class gridlayout extends JFrame {

gridlayout(){

setTitle("GridLayout");
setBounds(0, 0, 350, 300);
setVisible(true);
Container contentpane = getContentPane();
contentpane.setLayout(new GridLayout());
prueba panel1 = new prueba();
contentpane.add(panel1);


}
public static void main(String[]args){
gridlayout laventana = new gridlayout();

}

}

Ahora creamos otra clase llamada prueba

Código: [Seleccionar]
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class prueba extends JPanel {

prueba(){

setLayout(new GridLayout(5,4));
   add(new JButton("CLs"));
   add(new JButton("Bck"));
   add(new JLabel(""));
   add(new JButton("Close"));
   add(new JButton("7"));
   add(new JButton("8"));
   add(new JButton("9"));
   add(new JButton("/"));
   add(new JButton("4"));
   add(new JButton("5"));
   add(new JButton("6"));
   add(new JButton("*"));
   add(new JButton("1"));
   add(new JButton("2"));
   add(new JButton("3"));
   add(new JButton("-"));
   add(new JButton("0"));
   add(new JButton("."));
   add(new JButton("="));
   add(new JButton("+"));

}


}

Saludos y  espero que os guste :)
Título: Re:[Aporte] GridLayout
Publicado por: Kenkox en Diciembre 16, 2012, 04:16:18 am
Citar
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import javax.swing.*;

public class gridlayout extends JFrame {

   gridlayout(){
      
setTitle("GridLayout");      
setBounds(0, 0, 350, 300);
setVisible(true);
Container contentpane = getContentPane();
contentpane.setLayout(new GridLayout());
prueba panel1 = new prueba();
contentpane.add(panel1);

      
   }
   public static void main(String[]args){
      gridlayout laventana = new gridlayout();
      
   }

}

Consejos:
1°Los nombres de las clases siempre inician con mayuscula
2°En esta clase estas agregando lineas que practicamente son inecesarias, como la que puse en rojo..
puedes solamente poner "setLayout( new GridLayout() ); .. sin necesidad de crear el Container.... y pues asi obviamente ya eliminas el "contentpane.add(panel1);" y ya solo pones "add(panel1);"

Ahora creamos otra clase llamada prueba

Citar
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class prueba extends JPanel {

   prueba(){   
      
   setLayout(new GridLayout(5,4));
   add(new JButton("CLs"));
   add(new JButton("Bck"));
   add(new JLabel(""));
   add(new JButton("Close"));
   add(new JButton("7"));
   add(new JButton("8"));
   add(new JButton("9"));
   add(new JButton("/"));
   add(new JButton("4"));
   add(new JButton("5"));
   add(new JButton("6"));
   add(new JButton("*"));
   add(new JButton("1"));
   add(new JButton("2"));
   add(new JButton("3"));
   add(new JButton("-"));
   add(new JButton("0"));
   add(new JButton("."));
   add(new JButton("="));
   add(new JButton("+"));
   
   }
   
   
   }   

En esta clase, te puedes ahorras un monton de lineas jajaja xDD mira, para que todo sea mas ordenado, lo que puedes hacer es crear un Array de String que contenga todos los simbolos, y pues con un simple for, inicializarlos e irlos agregando XDD

String[] simbolos = {"Cls","Bck","Close","7","8","9","/","4","5","6","*","1","2","3","-","0",".","=","+"};
JButton[] botones = new JButton[19];
JLabel etiqueta = new JLabel("");
for( int kk=0;kk<19;kk++){
     if( kk == 2 ){
       add(etiqueta);
       botones[kk] = new JButton(simbolos[kk]);
       add(botones[kk];
     }
     else{
       botones[kk] = new JButton(simbolos[kk]);
       add(botones[kk]);
      }
}

Suerte