0

我开始为我的国际象棋学校项目创建 GUI。在尝试实现图形移动时,我被严重卡住了。

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

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

我试图让测试窗格像这样在点击时消失。(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);

任何帮助表示赞赏!

非常感谢!

4

1 回答 1

1

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

panel.remove(child);
// tell the panel to re-calculate its internals
panel.revalidate();
// now repaint - doesn't get automatically called
panel.repaint()
于 2013-05-01T22:35:09.627 回答