单击一个按钮后,我想要JPanel
删除一些要删除的组件,并创建一些新的组件.
我能够删除并添加新的,但JPanel
不会重新绘制自己.只有在我手动执行某些操作后,例如更改框架大小,框架才会"刷新",我得到了我想要的东西.
这是代码的相关部分,在此示例中,它按给定日期启动组件:
private ClassName() { date = Date.getToday(); init(date.toString()); } private void lastDayActionPerformed(ActionEvent evt) { this.removeAll(); date = date.getYesterday(); init(date.toString()); }
Hovercraft F.. 5
如果您希望组件在按下按钮后重新布局和重新绘制,并且在修改了GUI的状态之后,则直接在ActionListener的代码中调用:
private void lastDayActionPerformed(ActionEvent evt) { this.removeAll(); date = date.getYesterday(); init(date.toString()); revalidate(); // re-lays out child components repaint(); // repaints the component }
但是,听起来你真的想要使用CardLayout为你交换视图,因为这正是为这个类创建的.
如果您希望组件在按下按钮后重新布局和重新绘制,并且在修改了GUI的状态之后,则直接在ActionListener的代码中调用:
private void lastDayActionPerformed(ActionEvent evt) { this.removeAll(); date = date.getYesterday(); init(date.toString()); revalidate(); // re-lays out child components repaint(); // repaints the component }
但是,听起来你真的想要使用CardLayout为你交换视图,因为这正是为这个类创建的.