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