Bom eu iniciei este posto
http://www.guj.com.br/java/262171-atualizar-contador-durante-loop-for-de-copia-de-arquivos#1369830
pois estava tendo problemas com minha interface grafica, que fica travada até concluir o processo.
Descobri que realmente ela vai ficar travada se eu não iniciar o processo em uma Thread separada. Beleza, fiz uma classe interna e executei a thread, ok funcionou perfeitamente.
Porem, não entendo uma coisa. O codigo funciona, a cópia dos arquivos ocorre de maneira correta, o contador é atualizado corretamente, ao concluir é exibida a mensagem de “Concluido”. Então me pergunto: o que é esse erro que aparece no prompt ao final de cada copia de arquivo? Ele traz algum problema? Estou ignorando este erro, mas devo fazer isso? Não acho que relamente deva ignorar um erro, mas não consigo ver onde está o problema.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.plaf.synth.SynthLabelUI.getPreferredSize(SynthLabelUI.java:181)
at javax.swing.JComponent.getPreferredSize(JComponent.java:1634)
at java.awt.FlowLayout.preferredLayoutSize(FlowLayout.java:399)
at java.awt.Container.preferredSize(Container.java:1599)
at java.awt.Container.getPreferredSize(Container.java:1584)
at javax.swing.JComponent.getPreferredSize(JComponent.java:1636)
at java.awt.FlowLayout.layoutContainer(FlowLayout.java:594)
at java.awt.Container.layout(Container.java:1421)
at java.awt.Container.doLayout(Container.java:1410)
at java.awt.Container.validateTree(Container.java:1507)
at java.awt.Container.validateTree(Container.java:1513)
at java.awt.Container.validateTree(Container.java:1513)
at java.awt.Container.validate(Container.java:1480)
at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:669)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:124)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)