我正在使用名爲CardPanel的JPanel子類來顯示我的圖像。在hitYourself()方法中,我試圖去除名爲currentPanel的CardPanel,將一個新的CardPanel實例分配給currentPanel字段,然後將新的CardPanel對象添加到JFrame中。出於某種原因,我不能從hitYourself()方法中移除面板,或添加新的CardPanel。當我把playYourself中的代碼放在play方法中時,它按預期工作。我不確定它的相關性,但hitYourself方法是通過添加到JButton的ActionListener調用的。我已經驗證ActionListener正在工作,並且該方法確實被調用。爲什麼我不能在hitMourself()中從JFrame中移除JPanel?爲什麼我不能從這個方法的JFrame中移除一個JPanel?
public void play(){
yourCards.add(deckValues[getAvailableCardIndex()]);
yourCards.add(deckValues[getAvailableCardIndex()]);
dealerCards.add(deckValues[getAvailableCardIndex()]);
dealerCards.add(deckValues[getAvailableCardIndex()]);
currentPanel = new CardPanel(yourCards,dealerCards);
frame.add(currentPanel);
}
public void hitYourself(){
yourCards.add(deckValues[getAvailableCardIndex()]);
frame.remove(currentPanel);
currentPanel = new CardPanel(yourCards,dealerCards);
frame.add(currentPanel);
}
爲什麼不使用CardLayout佈局管理器? – 2013-04-26 02:25:11