之間切換更新Jbutton將所以我遇到的問題是可能比較容易在畫面顯示:問題與JTabbedPane的標籤
這第一張圖片是遊戲板
的鏡頭每個那些平方 - '陰謀' - 是JButtons。
在點擊圖上顯示上述這些Jbutton之一 - 即,「買生產」 - 相關動作將會發生:
到目前爲止,一切都很好。
但是,在切換到任何其他選項卡 - 「商品」或「幫助」 - 和切換回「遊戲」選項卡上,我只去過能夠有這種情況發生:
我的想法是,我要帶去更新購買農產品後,圖上顯示的步驟應該可以正常更新切換標籤後顯示,但事實並非如此。
這裏是我用來更新顯示購買農產品時的代碼:
buyProduce.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
try {
buyProduce();
plot_panel.removeAll();
createPlots();
labelStore.get("Cash_Label").setText(game.roundedWorth());
} catch (IOException e) {
e.printStackTrace();
} catch (BankruptException e) {
JOptionPane.showMessageDialog(frame,
"Bankrupt after attempt to purchase Produce");
}
}
});
我試着在TabbedPane的一個ChangeListener這樣做,只有有繪圖顯示去「空白」像第三張照片。通過顯示上述的按鈕中的一個 - - 用於更新顯示的動作
tabbedPane.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent arg0) {
plot_panel.removeAll();
createPlots();
}
});
然而,直到我執行顯示只是「空白」是這樣的。
(如果,例如,當顯示爲「空白」我「買農產品」,一切都顯得理所應當。)
任何人可以在這裏告訴,從我張貼,什麼錯誤和哪裏?
我很高興地後,如果需要更多的代碼,但認爲我應該嘗試保持這個整齊越好。
在此先感謝, 道格。
編輯:我不想浪費人們時間與一個可憐的MCVE,所以這裏 - http://1drv.ms/1Hx5sA1 - 是一個鏈接到一個壓縮的文件夾與其中的所有東西。
如果人們不希望通過拖網,然後我會嘗試切換到一個JTable。
您應該'重新驗證()'和'重繪()'添加或者刪除組件後'plot_panel'。但我幾乎想說,也許我們應該尋找一種不同的設計,但是沒有足夠的信息去解決。 – 2014-11-22 02:18:43
剛試過plot_panel.removeAll之後插入plot_panel.revalidate()和plot_panel.repaint()();和createPlots()之後; (然後兩者)但沒有改變。如果我貼我的(相當大)級在OP,或somehwere外部樣引擎收錄? – 2014-11-22 02:30:24
要獲得更好的幫助,請發佈[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。它只是一些小代碼而已。 – 2014-11-22 02:31:22