在JavaSwing中重新绘制面板
我正在开发任务调度软件,到目前为止进展顺利,除了一件事——我的面板有时不会被重新绘制。我现在正在开发日历可视化界面,我用面板表示不同的日期,事件由“日期”面板中的其他面板表示。我有一份任命名单:在JavaSwing中重新绘制面板,java,swing,panel,repaint,Java,Swing,Panel,Repaint,我正在开发任务调度软件,到目前为止进展顺利,除了一件事——我的面板有时不会被重新绘制。我现在正在开发日历可视化界面,我用面板表示不同的日期,事件由“日期”面板中的其他面板表示。我有一份任命名单: ArrayList<JPanel> appPanelList = new ArrayList<JPanel>(); “和其他”按钮删除此约会: btnDeleteApp.addActionListener(new ActionListener() {
ArrayList<JPanel> appPanelList = new ArrayList<JPanel>();
“和其他”按钮删除此约会:
btnDeleteApp.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
panel_days.remove(appPanelList.get(0));
panel_days.repaint();
}
});
现在,当我点击“Btnadapp”时,它会将约会面板添加到另一个面板(面板天数),但在调整窗口大小或执行其他操作之前,我无法看到它。一旦开始调整窗口大小,约会面板就会出现。这只会在我第一次添加约会时发生。如果我单击“btnDeleteApp”按钮,它会删除约会和重新绘制屏幕,然后如果我再次尝试添加约会,它现在也可以工作,面板会立即重新绘制,它只会在第一次创建“appPanelList.get(0)”时重新绘制失败。为什么会发生这种情况?在
重新绘制之前调用revalidate
当您完成更新(从中添加/删除组件)uHanks后,爱一行修复!!!“我有一份任命名单:“请使用JList
!”!
btnDeleteApp.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
panel_days.remove(appPanelList.get(0));
panel_days.repaint();
}
});