2013-05-17 58 views
0

任務:從面板中刪除多個控件,然後添加新控件。JAVA無法在面板中看到添加的組件

問題:完成幾種方法後,舊的控制消失,但我看不到新的方法。

代碼:

public void StartGame() { 
    ActionPanel.removeAll(); 
    CreateOponentField(); 
    ActionPanel.repaint(); 

} 
    private void CreateOponentField() { 
    ActionPanel.setLayout(new java.awt.GridLayout(10, 10)); 
    for (int i = 0; i < 10; i++) { 
     for (int j = 0; j < 10; j++) { 
      LabelArray[i][j] = new JLabel(); 
      LabelArray[i][j].setOpaque(true); 
      LabelArray[i][j].setBackground(BattleShipEnumClass.ColorMap.get(GridCellState.EMPTY)); 
      LabelArray[i][j].setBorder(new LineBorder(Color.BLACK)); 

      ActionPanel.add(LabelArray[i][j]); 

}}}

可能有人知道在哪裏的問題/錯誤?

回答

1

如果ActionPanelJComponent一個實例,你可以使用:

ActionPanel.revalidate(); 

否則

ActionPanel.invalidate(); 
ActionPanel.validate(); 
+1

重新驗證()重繪(),無效()是正確的API的實現,可能是很重要用於自定義LayoutManager – mKorbel