Java 如何在按钮单击等事件后自动重新绘制?
单击按钮后,我希望删除Java 如何在按钮单击等事件后自动重新绘制?,java,swing,Java,Swing,单击按钮后,我希望删除JPanel的一些组件,并创建一些新组件 我可以删除和添加新的,但是JPanel不会重新绘制自己。只有在我手动执行某些操作后,如更改帧大小,帧才会“刷新”,我才能得到所需的内容 下面是代码的相关部分,在本例中,它在给定日期启动组件: private ClassName() { date = Date.getToday(); init(date.toString()); } private void lastDayActionPerformed(Action
JPanel
的一些组件,并创建一些新组件
我可以删除和添加新的,但是JPanel
不会重新绘制自己。只有在我手动执行某些操作后,如更改帧大小,帧才会“刷新”,我才能得到所需的内容
下面是代码的相关部分,在本例中,它在给定日期启动组件:
private ClassName() {
date = Date.getToday();
init(date.toString());
}
private void lastDayActionPerformed(ActionEvent evt) {
this.removeAll();
date = date.getYesterday();
init(date.toString());
}
如果您希望组件在按下按钮并修改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
}
但是,听起来您真的很想使用交换视图,因为这正是创建此类的目的。如果您想在按下按钮并修改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
}
但是,听起来您真的很想使用交换视图,因为这正是创建此类的目的