1
我需要添加30 JPanel
s到一個大的JPanel
(其中有FlowLayout
佈局管理器)在運行時。我想在最後,當所有被添加到顯示額外的面板,所以我reValidate();
和rePaint();
末但是大屏顯示每增加面板只是在添加的時候,似乎它會自動重新粉刷:爲什麼JPanel會自動重繪?
public class CalendarsManager implements Runnable
{
public CalendarsManager(int mode, DecorateCalendarContainer container)
{
status = mode;
containerPanel = container.getContainer();
dayPanelsCategory = container.getDayPanels();
}
public void run()
{
for(int i=1;i<=30;i++)
{
containerPanel .add(dayPanelsCategory);
}
containerPanel.revalidate();
containerPanel.repaint();
}
}
所有30個面板將同時顯示,因爲您將面板添加到一個循環中,並且所有代碼都在幾毫秒內執行。如果您想要一次添加一個面板,則需要將動畫添加到代碼中。然後在動畫中,您需要在添加每個面板和重新驗證和重新繪製之間等待100毫秒左右。您可以使用SwingWorker或Swing Timer來執行動畫。 – camickr 2013-02-18 15:59:22