作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
单击按钮后,我希望删除 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
}
但是,听起来您真的很想使用 CardLayout为您交换 View ,因为这正是创建此类的目的。
关于java - 如何在单击按钮等事件后自动重绘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34374665/
我是一名优秀的程序员,十分优秀!