Como hacer una matriz gráfica de botones en java
/*******************************************************************/
IMPORTANTE, ESTA ENTRADA HA SIDO ACTUALIZADA Y MEJORADA EN EL SIGUIENTE SITIO.
NUEVO SITIO CLICK AQUÍ
/*******************************************************************/
Bueno... como me han preguntado varios alli en la U, asa, jajaja. ps bueno aki esta el codigo que se necesita para crear una matriz gráfica d botones o lo q keras...
Obiamente explicado va... no todo "auxiliar", jajaja.
bueno como primer paso, supondremos que estamos trabajando un jar y no applet. Es decir una aplicación ejecutable de java. bueno. Como primer paso debemos crear una ventana donde haremos el juego, si keres ver como hacer eso hay un post antiguo donde hay un ejemplo.
Bueno suponiendo que ya tenes el frame o ventana procedes a declarar un JPanel, esto para ir metiendo alli los elementos que vayas creando de manera que los coloques en forma matricial. A este JPanel hay que definirle la propiedad
PanelTablero = new JPanel(new GridLayout(8,8));
Al momento de crearlo, pues esto es para definir q los objetos que le pongamos los ponga en forma de Grid o celdas, y dentro del parentesis definimos el numero de columnas y filas (x,y).
Luego de haber hecho esto es tenemos que crear una matriz de tamaño[x][y] coincidente con el del panel ps, no podemos meter mas objetos de los que puede tener el panel. Esto lo hacemos de la siguiente manera:
MatFichas = new JButton[8][8];
Suponiendo que queramos hacer una matriz de botones, esta linea define a MatFichas, la cual se hará referencia como MatFichas[x][y], siendo x y y valores necesarios, como una matriz de tamaño 8x8.
Luego de haber hecho esto haremos un ciclo, para crear los botones de la matriz, pues con la linea anterior solo definimos a MatFichas como una matriz de botones, pero no le agregamos boton alguno.
for (int PosY=0;PosY<8;PosY++){
for (int PosX=0;PosX<8;PosX++){
MatFichas[PosX][PosY]=new JButton();
PanelTablero.add(MatFichas[PosX][PosY]);
MatFichas[PosX][PosY].addActionListener(this);
}
}
for (int PosX=0;PosX<8;PosX++){
MatFichas[PosX][PosY]=new JButton();
PanelTablero.add(MatFichas[PosX][PosY]);
MatFichas[PosX][PosY].addActionListener(this);
}
}
En las lineas anteriores de codigo tenemos: un doble for el cual primero pone un valor en y, y recorre toda la fila con ese valor de y, es decir todas las x con ese valor de y, y luego avanza a la siguiente y.
Luego tenemos la linea que crea un boton para la posicion actual de x y y. En la siguiente linea se agrega al Panel previamente creado el boton recien creado. Y como ultimo paso se procede a asignarle el evento ActionListener, esto para poder definir que el Boton creado tiene un procedimiento a realizar si se hace alguna acción que lo involucre, es decir que lo clickeen.
Como ultimo procedemo a agregar el panel a nuestra ventana, de lo contrario no sera visible en el frame. Esto lo podemos hacer con la siguiente linea de codigo:
this.add (PanelTablero);
Donde this hace referencia a la ventana o frame.
esta chido ese codigo me da una idea lo que quiero hacer pero como le aria sin botones es que la matriz que quiero poner la quiero relleñar algunas celas de colores y otras no es para un proyecto pero tengo proibido usar botones sabes como le aria?????
ResponderEliminarbuuhh no lo pudieron publicar asi como en wikipedia jajaja o algun lado ke aparece el codio asi bien chilero mucha pero ta bien :D (y) jajajaajjaja
ResponderEliminarola compadre, estoy tratando de hacer un bingo y quisiera generar el carton con una matris de jlabels pero no tengo la menor idea de como hacerlo espero puedas orientarme gracias
ResponderEliminary un acton listenerrrrrr como seriaaa
ResponderEliminarsi doi clic en el boton[2][3]
que se muestre un mensaje
diste clic en el boton con la hubicacion x, y
como imprimir en esos botones 2 arreglos aplicando un switch y que imprima ya sea numeros o letras alearotiamente urgentee
ResponderEliminarMe podrían orientar sobre como poder hacer un Rompecabezas en Jcreator usando una matriz gráfica de Botones, muchas gracias mi correo es progra1.100@gmail.com
ResponderEliminarhey pero dnde se escribe todo ese codigo??? en el init components???
ResponderEliminarSaludos, no sabes como podría hacer un sudoku metido en el Jpanel, ósea si pongo la proporción de [9][9] con textfields sale la proporción exacta pero cuesta bastante entenderla para el usuario, entonces tenia una idea de agregar algo dentro de ese Jpanel con proporción [3][3] pero no se exactamente que componente podría añadir, me podrías ayudar?
ResponderEliminar