Я пытаюсь создать настольную игру на Java, однако я довольно новичок в GUI. Проблема в том, что цветные панели добавляются в макет сетки, как и изображения, так что они в конечном итоге упаковываются рядом.
Мне бы хотелось, чтобы изображения располагались поверх других цветовых панелей, чтобы они выглядели как доска с кусочками (изображениями) сверху.
следующий код должен создать четыре цветных квадрата с четырьмя одинаковыми изображениями сверху, вместо этого они просто оказываются рядом друг с другом.
import java.awt.*;
import javax.swing.*;
@SuppressWarnings("serial")
public class test extends JFrame {
private static JPanel gridLayout = new JPanel(new GridLayout(2, 2));
private static ImageIcon img = new
ImageIcon(System.getProperty("user.dir") + "/images/an_image.png");
private static String[] boardTest = {
"i", "i",
"i", "i" };
public test() {
BorderLayout layout = new BorderLayout();
setLayout(layout);
add(gridLayout);
}
private static JLabel getPieceObject(String strPieceName) {
JLabel images;
if (strPieceName.equals("i")) {
images = new JLabel(img);
} else {
images = new JLabel();
}
return images;
}
private static void displayBoard() {
for (int i = 0; i < 4; i++) {
gridLayout.add(getPieceObject(boardTest[i]), BorderLayout.CENTER);
// this creates the color squares of the board//
JPanel panel = new JPanel(); //error
if (i % 2 == i/2 % 2) {
panel.setBackground(Color.RED);
} else {
panel.setBackground(Color.BLUE);
}
gridLayout.add(panel);
////////////////////////////////////////////////
gridLayout.validate();
}
}
public static void main(String[] args) {
displayBoard();
test app = new test();
app.setSize(200, 200);
app.setVisible(true);
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}