Java GUI getComponent(),panel.remove()

时间:2013-05-01 22:26:17

标签: java swing user-interface chess

我开始为我的国际象棋学校项目创建GUI。我在试图实现人物移动的过程中受到了严重的困扰。

我有一个窗口LayerPane,它代表主应用程序窗口。在这个LayerPane中,我有下一个国际象棋Pane,我在其中放置了一个测试窗格。

所以它就像 - 窗口 - 棋盘 - 测试

我试图让测试窗格在点击时消失。 (NetBeans生成的代码)

private void testingPaneMouseClicked(java.awt.event.MouseEvent evt) {                                           
    Component Fig = evt.getComponent();

    System.out.println(Fig);

    jLayeredPane1.remove(Fig);
    jLayeredPane1.repaint();
}   

但每当我点击测试窗格时,都没有任何反应。原因是getComponent()方法返回棋盘窗格而不是测试窗格。

任何建议,如何获得测试窗格?

当我尝试直接删除它时,它当然有效。

jLayeredPane1.remove(testingPane);

任何帮助表示赞赏!

非常感谢!

1 个答案:

答案 0 :(得分:1)

调用revalidate(),这应该可以解决问题:

panel.remove(child);
// tell the panel to re-calculate its internals
panel.revalidate();
// now repaint - doesn't get automatically called
panel.repaint()