miércoles, 19 de septiembre de 2012

agregar un arreglo de labels

Lastimosamente para netbeans no hay un metodo que solo indicar el tamaño del arreglo y ya esta, hay que hacerlo a mano, en este caso cree una clase jframe y a este le añadi un jpanel   y en este es el que le aplico el codigo.


package agregarlabels;

import java.awt.Color;
import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.border.Border;

/**
 *
 * @author jaac747
 */
public class pantalla extends javax.swing.JFrame {

    /**
     * Creates new form pantalla
     */
    public pantalla() {
        initComponents();
        inicio();
        this.setSize(400, 425);
    }
     
    private void inicio(){
        JLabel[] tablero;
        jPanel1.setSize(340, 340);
        int datox=15;//el total de piesas horizontalmente
        int datoy=datox;//para que sea una matriz cuadrada se iguala 
        int aux=datox*datoy;//el total de labels en la matriz
        tablero=new JLabel[aux];//se crea el arreglo de labels segun el tamaño total
        int espacio=5;//se crea un espacio que sera el que estara entre los datos
        //se obtiene el tamaño en x de los labels segun la cantidad de estos
        int tamanox=(jPanel1.getWidth()-(espacio*(datox+1)))/datox;
        System.out.println(tamanox);
        //se obtiene el tamaño en y de los labels segun la cantidad de estos
        int tamanoy=(jPanel1.getHeight()-(espacio*(datoy+1)))/datoy;
        System.out.println(tamanoy);
        
        int total=0;// se crea una bariable para recorrer el arreglo de labels
        int posiciony=0;//variable que sirve para ver la posicion en y de
for(int y=0;y<datoy;y++){
            //se le da una pocicion en y 
            posiciony=(y*(tamanoy+espacio)+espacio);
            for(int x=0;x<datox;x++){
                //System.out.println(total);
                tablero[total]=new JLabel("1");// se crea el objeto jlabel
                tablero[total].setBackground(Color.red);
                //se le da un borde
                tablero[total].setBorder(BorderFactory.createLineBorder(Color.black));
                //se le da una pocicion en x 
                int posicionx=((x+1)*espacio+(x*tamanox));
                System.out.println(posicionx);
                //se le da una posicion en x & y & se le da un tamaño en x & y 
                tablero[total].setBounds(posicionx,posiciony, tamanox, tamanoy);
                // se añade el label a un panel
                jPanel1.add(tablero[total]);
                //se le da que el label es visible
                tablero[total].setVisible(true);
                total++;
                //System.out.println((espacio+x*tamanox));
            }
        }
    }

No hay comentarios:

Publicar un comentario