Es posible concatenar una variable JPanel?
intento dar color a una serie de Jpaneles a travez de un ciclo, pero no he logrado concatenar el nombre de la variable Jpanel1, Jpanel2 etc
pensé que se podria hacer asi: jPanel+1+.setBackground(new java.awt.Color(0, 0, 0));
pero me saca error, en fin cualquier ayuda me sirve.
Este es el codigo sin la concatenacion
alguien me podria informar la forma correcta de hacerlo.
De antemano gracias
- Inicie sesión o regístrese para enviar comentarios
Yo te propongo dos formas. La
Yo te propongo dos formas. La forma mas fácil es almacenar en una estructura de datos los
JPanel
. Escoge según que es lo que necesites :)* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package pruebas;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
/**
*
* @author kalt
*/
public class ColoresJPanels {
private JFrame frame;
private JDialog dialog;
private List<JPanel> listaDePanels = new ArrayList<>();//Listas donde se almacenan los paneles
private List<JPanel> listaDePanels2 = new ArrayList<>();
public ColoresJPanels() {
frame = new JFrame("Colores y JPanels");
frame.getContentPane().setLayout(new GridLayout(32,128));
frame.setPreferredSize(new Dimension(640,480));
primerModo();
segundoModo();
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void primerModo() {
for(int i = 0; i < 256; i++) { //Recorremos de 0 a 255
listaDePanels.add(new JPanel()); //Creamos un nuevo panel
//Y lo agregamos a la lista
//mientras le asignamos un color de fondo
listaDePanels.get(i).setBackground(new Color(i, i, i));
frame.add(listaDePanels.get(i)); //Lo agregamos al frame.
}
}
private void segundoModo() {
dialog = new JDialog(frame, "Segundo Modo");
dialog.setLayout(new GridLayout(5,3));
dialog.setPreferredSize(new Dimension(640,480));
//Parte donde creas los paneles y despues agregas componentes a ellos
for(int i = 0; i < 15; i++) {
listaDePanels2.add(new JPanel());
listaDePanels2.get(i).setName(i+"");//Aqui le das un indentificador
}
//Parte donde segun necesidades tuyas escojes un cierto color
//segun algun criterio, y lo haces basandote en su nombre
for(int i = 0; i < listaDePanels2.size(); i++) {
if(listaDePanels2.get(i).getName().equals("7")) {//Aqui tu criterio de asignacion
listaDePanels2.get(i).setBackground(Color.DARK_GRAY);
} else {
listaDePanels2.get(i).setBackground(Color.ORANGE);
}
dialog.add(listaDePanels2.get(i));
}
dialog.pack();
dialog.setVisible(true);
}
public static void main(String args[]) {
new ColoresJPanels();
}
}
Concatenar Jpanel
Gracias, tarde 2 dias en implementar tu respuesta pero fue muy acertada, muchas gracias.