gpt4 book ai didi

java - 使用 .set Location() 似乎不适用于 JLabel

转载 作者:行者123 更新时间:2023-12-01 12:15:17 25 4
gpt4 key购买 nike

所以我试图在窗口上显示位图图 block 网格。我有一个 for 循环,它填充 JLabels 数组并使用 .setLocation() 定义它们的位置。问题是,当显示框架时,它们似乎完全忽略了我为它们设置的位置。

这是我到目前为止的代码。

public static void main(String[] args) throws IOException {
JFrame mainFrame = new JFrame("game.demo");

mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
mainFrame.setSize(512, 512);

JPanel mainPanel = new JPanel();

BufferedImage desTile16Image = ImageIO.read(new File("assets//desert_tile_16x.bmp"));
ImageIcon desTile16Icon = new ImageIcon(desTile16Image);

JLabel[][] map = new JLabel[32][32];




for (int x = 0; x < 32; x++) {
System.out.print(x + "\n");
map[x][0] = new JLabel();
map[x][0].setIcon(desTile16Icon);
map[x][0].setLocation(x * 16, 0);
mainPanel.add(map[x][0]);
}

//mainFrame.pack();
mainFrame.add(mainPanel);
mainFrame.setContentPane(mainPanel);
mainFrame.setVisible(true);
}

任何帮助将不胜感激,提前致谢。

最佳答案

考虑类似...

JPanel mainPanel = new JPanel(new GridLayout(32, 32));

那么你就不需要 map[x][0].setLocation(x * 16, 0);

看看Laying Out Components Within a ContainerHow to Use GridLayout更多详情

关于java - 使用 .set Location() 似乎不适用于 JLabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27055350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com