我正在尝试用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);
}
}