Hallo,
ich habe mir mal ein Testprogramm mit zwei Fenstern geschrieben.
1. JFrame = Hauptfenster (hier ist auch die main-Methode drin)
2. JDilalog = DialogTest
Hauptfenster:
DialogTest
Wenn das DialogTest Fenster geschlossen wird bleibt es immer im Speicher und der Garbage Collector kann es nicht löschen.
Was mache ich falsch?
MfG
Supertas
ich habe mir mal ein Testprogramm mit zwei Fenstern geschrieben.
1. JFrame = Hauptfenster (hier ist auch die main-Methode drin)
2. JDilalog = DialogTest
Hauptfenster:
Code:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Hauptfenster extends JFrame {
/**
* Launch the application
* @param args
*/
public static void main(String args[]) {
try {
Hauptfenster frame = new Hauptfenster();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the frame
*/
public Hauptfenster() {
super();
setBounds(100, 100, 500, 375);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JButton button = new JButton();
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
dialogFenster();
}
});
button.setText("New JButton");
getContentPane().add(button, BorderLayout.CENTER);
//
}
protected void dialogFenster() {
DialogTest tmp = new DialogTest(this);
tmp.setVisible(true);
tmp.dispose();
}
}
DialogTest
Code:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
public class DialogTest extends JDialog {
/**
* Create the dialog
* @param hauptfenster
*/
public DialogTest(Hauptfenster hauptfenster) {
super(hauptfenster);
setModal(true);
setBounds(100, 100, 500, 375);
final JButton closeButton = new JButton();
closeButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
setVisible(false);
}
});
closeButton.setText("Close");
getContentPane().add(closeButton, BorderLayout.CENTER);
//
}
}
Wenn das DialogTest Fenster geschlossen wird bleibt es immer im Speicher und der Garbage Collector kann es nicht löschen.
Was mache ich falsch?
MfG
Supertas