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