点击按钮后如何自动重新绘制?

时间:2015-12-19 19:45:32

标签: java swing

单击按钮后,我希望删除Do While (WLFile) > 0 Set WB = Workbooks.Open(WLPath & WLFile, UpdateLinks:=3) ActiveWorkbook.SaveAs Filename:=MyFolder & "\" & _ "20" & WLYear & "\" & _ QTR & "Q" & "\" & _ WLFile ActiveWorkbook.Close 的某些组件,并创建一些新组件。

我可以删除并添加新的,但JPanel不会重新绘制自己。只有在我手动执行某些操作后,例如更改框架大小,框架才会“刷新”,我得到了我想要的内容。

以下是代码的相关部分,在此示例中,它按给定日期启动组件:

JPanel

1 个答案:

答案 0 :(得分: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来交换视图,因为这正是为这个类创建的。