Recientemente me metí en Java y todavía soy un novato. Creé un panel de 9x9 de JPanels usando un bucle for para agregar los botones. ¿Cómo crearía un oyente de acción que me permitiera elegir diferentes colores que aparecerán como el color de fondo del JButton cuando se haga clic en él? Estoy tratando de hacer un programa de pixel art en miniatura.
Se verá algo como esto. En este ejemplo, [row] y [col] se refieren a los valores de fila y columna de su cuadrícula. Asegúrese de crear un contador ( private static int counter = 0; ). o de lo contrario obtendrá un montón de errores. Aquí está el código:
JBut[row][col].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { typeOfButton button = (typeOfButton) e.getSource(); int row = button.getRow(); int col = button.getCol(); counter++; if (counter == 1) { JBut[row][col].setBackground(Color.RED); } else if (counter == 2) { JBut[row][col].setBackground(Color.ORANGE); } else if (counter == 3) { JBut[row][col].setBackground(Color.YELLOW); } else if (counter == 4) { JBut[row][col].setBackground(Color.GREEN); } else if (counter == 5){ JBut[row][col].setBackground(Color.BLUE); } else if (counter == 6){ JBut[row][col].setBackground(Color.MAGENTA); } else { JBut[row][col].setBackground(Color.BLACK); counter = 0; //makes color cycle repeat, starting with red } //end else } //end actionPerformed }); //end ActionListener Obviamente, la forma más sencilla de hacer esto sería colocar la instrucción if gigante en un nuevo método llamado determineColor() o algo así.