如何在for循环中显示多个图像

时间:2012-05-17 13:06:32

标签: java image for-loop

对于学校我需要制作一个处理[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;

}

1 个答案:

答案 0 :(得分:2)

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

通过略读代码我可以看到,你基本上覆盖了你为每次迭代放置的最后一个元素。