J
joerg1978
Gast
Hallo
habe seit einiger Zeit ein Problem. Um die Ergebnismege (result) auszugeben,möchte ich warten bis der Thread beendet ist. (also mit .joint()) Leider erhalte ich eine Fehlermeldung:
Exception in thread "Thread-2" java.lang.OutOfMemoryError: Java heap space
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
Kommentiere ich join() aus, wie der untenstehende Code funktioniert der Thread einwandfrei? Kann jemand von Euch helfen?
Vielen Dank
Gruß Joerg
Eine Thread wird gestartet und es soll auf die Ergebnissmenge
habe seit einiger Zeit ein Problem. Um die Ergebnismege (result) auszugeben,möchte ich warten bis der Thread beendet ist. (also mit .joint()) Leider erhalte ich eine Fehlermeldung:
Exception in thread "Thread-2" java.lang.OutOfMemoryError: Java heap space
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
Kommentiere ich join() aus, wie der untenstehende Code funktioniert der Thread einwandfrei? Kann jemand von Euch helfen?
Vielen Dank
Gruß Joerg
Eine Thread wird gestartet und es soll auf die Ergebnissmenge
Code:
package progress;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JProgressBarDemo extends JFrame {
static JProgressBar bar = new JProgressBar(0, 1000000);
int dummy = 0;
public JProgressBarDemo() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton but = new JButton("Start zählen");
but.addActionListener(new ButtonActionListener());
add(bar, BorderLayout.PAGE_START);
add(but, BorderLayout.PAGE_END);
pack();
}
class testThread implements Runnable {
public int result;
public void run() {
result = 8;
for (int i = 1; i <= bar.getMaximum(); ++i) {
final int j = i;
SwingUtilities.invokeLater(new Runnable() {
public void run() {
bar.setValue(j);
dummy = 1;
}
});
}
}
}
private class ButtonActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
testThread t = new testThread();
Thread a = new Thread(t);
a.start();
// try {
// a.join();
// } catch (InterruptedException e1) {
// // TODO Auto-generated catch block
// e1.printStackTrace();
// }
System.out.println(t.result);
}
}
public static void main(String[] args) {
new JProgressBarDemo().setVisible(true);
}
}