gpt4 book ai didi

java - 如何在单击按钮等事件后自动重绘?

转载 作者:行者123 更新时间:2023-11-29 07:37:04 24 4
gpt4 key购买 nike

单击按钮后,我希望删除 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com