Tag auch
Also ich habe einen jFileChooser, wo ich enorme Mengen von Dateien auswählen will. Wenn ich da über einen bestimmten Wert geben, kommt schon mal ne Exception
Aber das ist noch nicht mal das eigentliche Problem.
Ich lese Dateien so ein:
Und wenn ich da große Dateien oder viele, je nach dem angebe und dann auf öffnen klicke, kommt:
Hat jemand eine Idee woran das liegt bzw was hilfreicher wäre - wie ich das beheben kann? Mitn sleep vllt, aber das einlesen dauert so schon recht lang
Hinweise und Lösungen sind gern gesehen
MfG erZ
Also ich habe einen jFileChooser, wo ich enorme Mengen von Dateien auswählen will. Wenn ich da über einen bestimmten Wert geben, kommt schon mal ne Exception
Ich lese Dateien so ein:
Code:
private void jFileChooser1ActionPerformed(java.awt.event.ActionEvent evt) {
if(evt.getActionCommand().equals("ApproveSelection")) { //Öffnen
Main.choosedFiles = jFileChooser1.getSelectedFiles(); //das ist egal
try {
//Abbilden der Files auf den Vector fileImages in hf.fileImages
for(int i=0;i < Main.choosedFiles.length;i++) {
Main.hf.fileImages.add(ImageIO.read(Main.choosedFiles[i])); //<-- hier liegt das Problem!
}
//rest-code
} catch (java.io.IOException e) {
//tritt eh nicht ein :D
}
this.dispose();
}
if(evt.getActionCommand().equals("CancelSelection")) { //Abbrechen
this.dispose();
}
}
Und wenn ich da große Dateien oder viele, je nach dem angebe und dann auf öffnen klicke, kommt:
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
at java.awt.image.DataBufferByte.<init>(DataBufferByte.java:58)
at java.awt.image.ComponentSampleModel.createDataBuffer(ComponentSampleModel.java:397)
at java.awt.image.Raster.createWritableRaster(Raster.java:938)
at javax.imageio.ImageTypeSpecifier.createBufferedImage(ImageTypeSpecifier.java:1169)
at javax.imageio.ImageReader.getDestination(ImageReader.java:2879)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(JPEGImageReader.java:943)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(JPEGImageReader.java:915)
at javax.imageio.ImageIO.read(ImageIO.java:1422)
at javax.imageio.ImageIO.read(ImageIO.java:1282)
at twainprojekt.Durchsuchen.jFileChooser1ActionPerformed(Durchsuchen.java:47)
at twainprojekt.Durchsuchen.access$000(Durchsuchen.java:7)
at twainprojekt.Durchsuchen$1.actionPerformed(Durchsuchen.java:22)
at javax.swing.JFileChooser.fireActionPerformed(JFileChooser.java:1717)
at javax.swing.JFileChooser.approveSelection(JFileChooser.java:1627)
at javax.swing.plaf.basic.BasicFileChooserUI$ApproveSelectionAction.actionPerformed(BasicFileChooserUI.java:914)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at java.awt.Component.processMouseEvent(Component.java:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
Hat jemand eine Idee woran das liegt bzw was hilfreicher wäre - wie ich das beheben kann? Mitn sleep vllt, aber das einlesen dauert so schon recht lang
Hinweise und Lösungen sind gern gesehen
MfG erZ