Java 使用.setLocation()dosent似乎对JLabel有效

Java 使用.setLocation()dosent似乎对JLabel有效,java,swing,jframe,Java,Swing,Jframe,因此,我试图在窗口上显示位图分片的网格。 我有一个for循环,它填充jlabel数组并使用.setLocation()定义它们的位置。 问题是,当显示帧时,他们似乎完全忽略了我为他们设置的位置 这是到目前为止我的密码 public static void main(String[] args) throws IOException { JFrame mainFrame = new JFrame("game.demo"); mainFrame.addWindowListener(

因此,我试图在窗口上显示位图分片的网格。 我有一个for循环,它填充jlabel数组并使用.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);
}
publicstaticvoidmain(字符串[]args)引发IOException{
JFrame大型机=新的JFrame(“game.demo”);
mainFrame.addWindowListener(新的WindowAdapter(){
公共无效窗口关闭(WindowEvent e){
系统出口(0);
}
});
大型机.setSize(512);
JPanel mainPanel=新的JPanel();
buffereImage desTile16Image=ImageIO.read(新文件(“assets//dester\u tile\u 16x.bmp”);
ImageIcon desTile16Icon=新的ImageIcon(desTile16Image);
JLabel[]map=新的JLabel[32][32];
对于(int x=0;x<32;x++){
系统输出打印(x+“\n”);
map[x][0]=新的JLabel();
地图[x][0].setIcon(目标16图标);
地图[x][0]。设置位置(x*16,0);
主面板添加(映射[x][0]);
}
//mainFrame.pack();
mainFrame.add(主面板);
mainFrame.setContentPane(主面板);
mainFrame.setVisible(true);
}

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

考虑以下事项:

JPanel mainPanel = new JPanel(new GridLayout(32, 32));
这样就不需要
map[x][0].setLocation(x*16,0)


看一看,还有更多的细节

aah我明白了,尽管有没有一种方法可以独立于“布局”来定位标签,你必须让我相信不用布局管理器的用例……好吧,那么,在瓷砖的顶部,我想显示一个最终会移动的汽车位图,皮克斯,皮克斯,这辆车是怎么实现的?它是某种组件吗?