Hi, ich füge über Multithreading mehrere Elemente einer JList hinzu. Nur wird dann komischerweiße dieser Fehler geworfen:
Ich hab auch schonmal um die ganze Methode einen try - catch - Block gebaut, aber konnte sie trotzdem nicht abfangen. Meine Methode:
Bin hier echt ratlos ...
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException:
306
at javax.swing.plaf.basic.BasicListUI.updateLayoutState(BasicListUI.java
:1141)
at javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(BasicListUI
.java:1084)
at javax.swing.plaf.basic.BasicListUI.getPreferredSize(BasicListUI.java:
353)
at javax.swing.JComponent.getPreferredSize(JComponent.java:1582)
at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:76
9)
at java.awt.Container.layout(Container.java:1401)
at java.awt.Container.doLayout(Container.java:1390)
at java.awt.Container.validateTree(Container.java:1473)
at java.awt.Container.validate(Container.java:1448)
at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.j
ava:379)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(System
EventQueueUtilities.java:113)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:234)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Ich hab auch schonmal um die ganze Methode einen try - catch - Block gebaut, aber konnte sie trotzdem nicht abfangen. Meine Methode:
Code:
void searchMultiCon(final File dir, final String search) {
new Thread(new Runnable() {
public void run() {
File[] files = dir.listFiles();
for (File file : files) {
if (file.getName().toUpperCase().indexOf(search) != -1) {
dlm.addElement(file);
}
if (file.isDirectory()) {
searchMultiCon(file, search);
}
}
}
}).start();
}
Bin hier echt ratlos ...