Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GUI getComponent(),panel.remove()_Java_Swing_User Interface_Chess - Fatal编程技术网

Java GUI getComponent(),panel.remove()

Java GUI getComponent(),panel.remove(),java,swing,user-interface,chess,Java,Swing,User Interface,Chess,我开始为我的象棋学校项目创建GUI。我在尝试实施人形移动时被严重卡住了 我有一个窗口层平面,它代表主应用程序窗口。在这个层面板中,我有下一个象棋窗格,我在其中放置了一个测试窗格 所以它就像是一个窗口棋盘测试 我试图让测试窗格消失在点击像这样。 (由NetBeans生成的代码) 但每当我点击测试窗格时,什么都不会发生。原因是getComponent()方法返回棋盘格而不是测试格 有什么建议,如何获得测试窗格 当我尝试直接删除它时,它当然会工作 jLayeredPane1.remove(testin

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

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

所以它就像是一个窗口棋盘测试

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

但每当我点击测试窗格时,什么都不会发生。原因是getComponent()方法返回棋盘格而不是测试格

有什么建议,如何获得测试窗格

当我尝试直接删除它时,它当然会工作

jLayeredPane1.remove(testingPane);
感谢您的帮助

非常感谢

调用
revalidate()
,这应该可以做到:

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

为了更快地获得更好的帮助,请发布一个。感谢您的回复iluxa。但我已经试过了,包括重新验证。问题是,evt.getComponent();不会识别棋盘子项,但会识别棋盘本身,因此下一步无法删除子项。问题似乎已解决。我将侦听器添加到测试窗格中,而不是添加到chessabord中,它似乎工作正常。
panel.remove(child);
// tell the panel to re-calculate its internals
panel.revalidate();
// now repaint - doesn't get automatically called
panel.repaint()