0

对于学校,我需要制作一个游戏来处理 [X] 张随机卡片。我使用此代码来构建和显示我的图像。只有一件事出错了。显示项目时,仅显示最后一张卡片。

有什么办法可以让这些图像并排显示?

public static void main(String[] args) throws FileNotFoundException, IOException {
    Cards cards = new Cards();
    int dealSize = 6;
    deal = cards.getShuffledCards(dealSize);
    System.out.println("Deal of 4 randomly picked cards " + deal);
    f = new JFrame();
    for(int i=0; i < dealSize; i++) {
        card = deal.get(i).toString();
        f.getContentPane().add(setLabel(card));
    }
    f.pack();
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setLocation(200,200);
    f.setVisible(true);



}

public static JLabel setLabel(String fileLocation) throws FileNotFoundException, IOException {
    InputStream file = new BufferedInputStream(
        new FileInputStream([DIRECTORY TO IMAGES]" + fileLocation));
        BufferedImage image = ImageIO.read(file);
        label = new JLabel(new ImageIcon(image));
        return label;

}
4

1 回答 1

2

您可能必须制作一个任意网格,其中一张卡可以占据每个部分。像 GridLayout 或 GridBagLayout。

从我通过浏览您的代码可以看出,对于每次迭代,您基本上都会覆盖您放置的最后一个元素。

于 2012-05-17T13:07:24.180 回答