Vielen Dank erstmal, mit den Referenzen funktioniert ganz gut. Hab des mal in einer Testklasse getestest. Falls jemand das Ergebniss interessiert.
[Java]
package test;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JPanel;
import javax.swing.JButton;
import java.awt.Rectangle;
public class Fenster1 extends JFrame {
private JPanel jPanel = null;
private JButton jButton = null;
private JFrame frame;
//der Zwischenspeicher für das Mainframe
public Fenster1() {
super();
initialize();
frame=this;
//Das Mainframe der frame Variable zuordnen
}
private void initialize() {
this.setSize(new Dimension(298, 152));
this.setContentPane(getJPanel());
//eine ContentPane zuordnen
}
private JPanel getJPanel() {
if (jPanel == null) {
jPanel = new JPanel();
jPanel.setLayout(null);
jPanel.add(getJButton(), null);
}
return jPanel;
}
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setBounds(new Rectangle(80, 28, 88, 43));
jButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
new Fenster2(frame);
//Hier rufe ich ein zweites Fenster auf, ohne das 1. zu schließen
//2.Fenster siehe Klasse unten
frame.setVisible(false);
//ich setze es nur auf unsichtbar
}
});
}
return jButton;
}
}
[/Java]
Und hier die 2.Klasse
[Java]
package test;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JPanel;
import javax.swing.JButton;
import java.awt.Rectangle;
public class Fenster2 extends JFrame {
private JPanel jPanel = null;
private JButton jButton = null;
JFrame dieses;
JFrame rufer;
//Hier wieder 2 variablen, einmal für das Mainframe(=der Rufer) und dieses Fenster hier
public Fenster2(JFrame frame) {
//Bei erstellen eines Objekts wird die RuferKlasse gespeichert, damit das Fenster nachher weider aufgerufen werden //kann
super();
rufer=frame;
dieses=this;
initialize();
this.setVisible(true);
}
private void initialize() {
this.setSize(new Dimension(265, 178));
this.setContentPane(getJPanel());
}
private JPanel getJPanel() {
if (jPanel == null) {
jPanel = new JPanel();
jPanel.setLayout(null);
jPanel.add(getJButton(), null);
}
return jPanel;
}
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setBounds(new Rectangle(73, 42, 105, 42));
jButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
//dieses Fenster disposen, weil in dem Mainfenster immer neue Klassen erstellt werden, die sonst nicht beendet //werden
dieses.dispose();
//und den Rufer, wieder sichtbar machen
rufer.setVisible(true);
}
});
}
return jButton;
}
} [/Java]
Vielen Dank nochmal, für die schnell Antwort.