2
我试图在JPanel上绘制5张卡片,但在显示卡片图像时遇到了问题。无法绘制多个JLabels
JLabel[] cards = {
new JLabel(CARD_BACK),
new JLabel(CARD_BACK),
new JLabel(CARD_BACK),
new JLabel(CARD_BACK),
new JLabel(CARD_BACK)
};
for(int i=0; i<cards.length; i++) {
cards[i].setBounds(60*i, 0, 150, 215);
}
for(JLabel z : cards)
auxHands.add(z);
auxHands.setLayout(null);
以上工作正常,并绘制5倍的图像,但是当我试图凝聚这样的代码:
JLabel[] cards = new JLabel[5];
Arrays.fill(cards, new JLabel(CARD_BACK));
for(int i=0; i<cards.length; i++) {
cards[i].setBounds(60*i, 0, 150, 215);
}
for(JLabel z : cards)
auxHands.add(z);
auxHands.setLayout(null);
似乎只绘制卡片的最后一个实例。最后,我将要绘制多个手,并且像第一个代码示例中那样继续实例化新的JLabel []似乎很乏味。
下面是我的意思的视觉效果:http://oipsl.freesuperhost.com/images/meh.png,上半部分显示了执行代码的第一个代码段时的样子,下半部分代表了第二个代码段的样子。
谢谢大家的清晰,简明的解释! – oipsl 2012-03-27 05:53:25