Hallo Freunde,
und zwar habe ich 2 JFrame Klassen die eine Klasse ist quasi das Hauptfenster und die andere Klasse bildet ein JFrame mit einem Fenster, wo eine Aufforderung ist den Dateipfad anzugeben zu einer XML Datei, um ein dann ein Instanz vom Hauptfenster zu erstellen mit dem Daten der XML Datei. Wenn ich das Programm starte wird erst eine Instanz der Hauptklasse erstellt und durch einen Menueintrag dann das Eingabefenster geöffnet. Jetzt möchte ich eine neue Instanz des Hauptfensters erstellen durch dieses Fenster und anschließend das alte Hauptfenster schließen. Wie stelle ich das am besten an? Hier sind nochmal die beiden Klassen.
und zwar habe ich 2 JFrame Klassen die eine Klasse ist quasi das Hauptfenster und die andere Klasse bildet ein JFrame mit einem Fenster, wo eine Aufforderung ist den Dateipfad anzugeben zu einer XML Datei, um ein dann ein Instanz vom Hauptfenster zu erstellen mit dem Daten der XML Datei. Wenn ich das Programm starte wird erst eine Instanz der Hauptklasse erstellt und durch einen Menueintrag dann das Eingabefenster geöffnet. Jetzt möchte ich eine neue Instanz des Hauptfensters erstellen durch dieses Fenster und anschließend das alte Hauptfenster schließen. Wie stelle ich das am besten an? Hier sind nochmal die beiden Klassen.
Code:
package Klassen;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.DefaultTableModel;
/**
*
* Description
*
* @version 1.0 from 16/07/2020
* @author
*/
public class GUI extends JFrame implements ActionListener{
/**
*
*/
private static final long serialVersionUID = 1L;
// start attributes
public static String u[][] = {{"","","",""}};
public static String rowData[][] = GAEB.Tabellefüllen("Muster-Ausschreibungs-LV-ErdMauerBetonarbeiten-xml32.x83");
private String columnNames[] = {"OZ","Menge","Einheit","Kurztext"};
private JMenuBar menu = new JMenuBar();
private JMenu datei = new JMenu("Datei");
private JMenuItem neu = new JMenuItem("Neu");
private JMenuItem oeffnen = new JMenuItem("Öffnen");
private JMenuItem speichern = new JMenuItem("Speichern");
private JMenuItem beenden = new JMenuItem("Beenden");
private JTable jTable1 = new JTable(rowData,columnNames);
private JScrollPane jTable1ScrollPane = new JScrollPane(jTable1);
// end attributes
public GUI() {
// Frame-Init
super();
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
int frameWidth = 733;
int frameHeight = 438;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2;
setLocation(x, y);
setTitle("Angewandte Programmierung - GAEB -Analyzer");
setResizable(false);
Container cp = getContentPane();
cp.setLayout(null);
// start components
neu.addActionListener(this);
oeffnen.addActionListener(this);
speichern.addActionListener(this);
beenden.addActionListener(this);
datei.add(neu);
datei.add(oeffnen);
datei.add(speichern);
datei.add(beenden);
menu.add(datei);
setJMenuBar(menu);
jTable1ScrollPane.setBounds(0, -2, 724, 398);
cp.add(jTable1ScrollPane);
// end components
setVisible(true);
} // end of public GUI
public GUI(String[][] a) {
// Frame-Init
super();
setrowData(a);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
int frameWidth = 733;
int frameHeight = 438;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2;
setLocation(x, y);
setTitle("Angewandte Programmierung - GAEB -Analyzer");
setResizable(false);
Container cp = getContentPane();
cp.setLayout(null);
// start components
neu.addActionListener(this);
oeffnen.addActionListener(this);
speichern.addActionListener(this);
beenden.addActionListener(this);
datei.add(neu);
datei.add(oeffnen);
datei.add(speichern);
datei.add(beenden);
menu.add(datei);
setJMenuBar(menu);
jTable1ScrollPane.setBounds(0, -2, 724, 398);
cp.add(jTable1ScrollPane);
// end components
setVisible(true);
} // end of public GUI
// start methods
public void actionPerformed(ActionEvent e) {
if (e.getSource() == neu){
neu();
}
if (e.getSource() == oeffnen){
oeffnen();
}
if (e.getSource() == speichern){
speichern();
}
if (e.getSource() == beenden){
beenden();
}
}//Ende actionPerformed
private void beenden() {
// TODO Auto-generated method stub
dispose();
}//Ende beenden
private void speichern() {
// TODO Auto-generated method stub
}//Ende speichern
private void oeffnen() {
GUIoeffnen aa = new GUIoeffnen();
}//Ende oeffnen
private void neu() {
GUI z = new GUI(u);
z.dispose();
dispose();
GUI i = new GUI(u);
}//Ende neu
public void setrowData(String[][] a) {
rowData = a ;
}
public String[][] getrowData() {
return rowData;
}
// end methods
} // end of class GUI
Code:
package Klassen;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
/**
*
* Description
*
* @version 1.0 from 23/07/2020
* @author
*/
public class GUIoeffnen extends JFrame {
// start attributes
private JLabel lBittegebeSieIhrenDateipfadan = new JLabel();
private JTextField jTextField1 = new JTextField();
private JButton bOeffnen = new JButton();
// end attributes
public GUIoeffnen() {
// Frame-Init
super();
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
int frameWidth = 693;
int frameHeight = 387;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2;
setLocation(x, y);
setTitle("Dateipfad angeben");
setResizable(false);
Container cp = getContentPane();
cp.setLayout(null);
// start components
lBittegebeSieIhrenDateipfadan.setBounds(227, 72, 212, 44);
lBittegebeSieIhrenDateipfadan.setText("Bitte gebe Sie Ihren Dateipfad an");
cp.add(lBittegebeSieIhrenDateipfadan);
jTextField1.setBounds(95, 139, 494, 28);
cp.add(jTextField1);
bOeffnen.setBounds(287, 209, 75, 25);
bOeffnen.setText("Oeffnen");
bOeffnen.setMargin(new Insets(2, 2, 2, 2));
bOeffnen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
bOeffnen_ActionPerformed(evt);
}
});
cp.add(bOeffnen);
// end components
setVisible(true);
} // end of public GUIoeffnen
// start methods
public void bOeffnen_ActionPerformed(ActionEvent evt) {
dispose();
GUI a = new GUI(GAEB.Tabellefüllen(jTextField1.getText()));
a.dispose();
GUI b = new GUI(GAEB.Tabellefüllen(jTextField1.getText()));
} // end of bOeffnen_ActionPerformed
// end methods
} // end of class GUIoeffnen