我正在研究任务调度软件,到目前为止它一直很好,除了一件事 - 我的面板有时没有重新粉刷。我现在正在处理日历视觉界面,我代表不同的日子与面板,并代表事件通过其他小组放入“第二天”。面板。我有一份约会清单:
ArrayList<JPanel> appPanelList = new ArrayList<JPanel>();
现在说我们有一个按钮可以将一个面板添加到此列表中,也可以添加到&#39; panel_days&#39;面板:
btnAddApp.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
appPanelList.add(new JPanel());
appPanelList.get(0).setBackground(SystemColor.activeCaption);
appPanelList.get(0).setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
panel_days.add(appPanelList.get(0), "flowx,cell 0 1,growx,growy");
panel_days.repaint();
}
});
和其他按钮删除此约会:
btnDeleteApp.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
panel_days.remove(appPanelList.get(0));
panel_days.repaint();
}
});
现在,当我点击&#39; btnAddApp&#39;它将约会面板添加到另一个面板(panel_days)但我无法看到它,直到我调整窗口大小或执行其他操作。一旦开始调整窗口大小,就会出现约会面板。这只会在我第一次添加约会时发生。如果我点击&#39; btnDeleteApp&#39;按钮它删除约会和重新绘制屏幕,然后如果我再次尝试添加任命,它现在也可以工作,面板立即重新绘制,它只能在第一次重新绘制&#39; appPanelList.get(0)&#39 ;被建造。为什么会这样?