Eins von zwei offnen Fenster/Frames schließen

Status
Nicht offen für weitere Antworten.

alphaChill

Aktives Mitglied
Hallo,

ich habe vor mir 2 Fenster - Fenster A und Fenster B. Fenster B wurde über A aufgerufen. Nun würde ich gern über einen Button, der in Fenster B liegt dieses Fenster (B) gern schließen. Fenster A soll weiterhin sichtbar und verwendbar bleiben. Mit
Code:
System.exit(0)
schließen sich beide Fenster gleichzeitig 🙁
Wenn ich das [X] im Frame-Rahmen auf
Code:
.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
lege und in der Ausführung dann auf das [X] klicke verschwindet es und Fenster A bleibt bearbeitbar. Nur über welche Methode kann ich Fenster B verschwinden lassen?

Welche Möglichkeit habe ich sonst für dieses Problem?





Hier der Button, der das Fenster beenden soll, in welchem er sich befindet:
Code:
		private JButton getJButton1() {
			if (jButton1 == null) {
				jButton1 = new JButton();
				jButton1.setText("Nein");
				jButton1.setSize(new Dimension(100, 25));
				jButton1.setPreferredSize(new Dimension(59, 26));
				jButton1.setLocation(new Point(139, 60));
				jButton1.addActionListener(new java.awt.event.ActionListener() {
					public void actionPerformed(java.awt.event.ActionEvent e) {
						System.exit(1);
						
	
					}
				});
			}
			return jButton1;
		}



Hier das Fenster, welches geschlossen werden soll:
Code:
	public class ExitFenster extends JFrame {

		private static final long serialVersionUID = 1L;

		private JPanel jContentPane = null;

		private JPanel jPanelx = null;

		private JPanel jPanel1 = null;

		private JTextArea jTextArea = null;

		private JButton jButton = null;

		private JButton jButton1 = null;

		/**
		 * This method initializes jPanel	
		 * 	
		 * @return javax.swing.JPanel	
		 */
		private JPanel getJPanel() {
			if (jPanelx == null) {
				jPanelx = new JPanel();
				jPanelx.setLayout(null);
				jPanelx.add(getJPanel1(), null);
				jPanelx.add(getJButton(), null);
				jPanelx.add(getJButton1(), null);
			}
			return jPanelx;
		}

		/**
		 * This method initializes jPanel1	
		 * 	
		 * @return javax.swing.JPanel	
		 */
		private JPanel getJPanel1() {
			if (jPanel1 == null) {
				GridBagConstraints gridBagConstraints = new GridBagConstraints();
				gridBagConstraints.fill = GridBagConstraints.BOTH;
				gridBagConstraints.gridy = 0;
				gridBagConstraints.weightx = 1.0;
				gridBagConstraints.weighty = 1.0;
				gridBagConstraints.gridheight = 1;
				gridBagConstraints.gridx = 0;
				jPanel1 = new JPanel();
				jPanel1.setLayout(new GridBagLayout());
				jPanel1.setLocation(new Point(20, 20));
				jPanel1.setSize(new Dimension(219, 35));
				jPanel1.add(getJTextArea(), gridBagConstraints);
			}
			return jPanel1;
		}

		/**
		 * This method initializes jTextArea	
		 * 	
		 * @return javax.swing.JTextArea	
		 */
		private JTextArea getJTextArea() {
			if (jTextArea == null) {
				jTextArea = new JTextArea();
				
				jTextArea.setEditable(false);
				jTextArea.setText("Die Tabelle wurde nicht abgespeichert!\nTrotzdem beenden?");
				jTextArea.setBackground(new Color(238, 238, 238));
			}
			return jTextArea;
		}

		/**
		 * This method initializes jButton	
		 * 	
		 * @return javax.swing.JButton	
		 */
		private JButton getJButton() {
			if (jButton == null) {
				jButton = new JButton();
				jButton.setText("Ja");
				jButton.setSize(new Dimension(100, 25));
				jButton.setLocation(new Point(20, 60));
				jButton.addActionListener(new java.awt.event.ActionListener() {
					public void actionPerformed(java.awt.event.ActionEvent e) {
						System.exit(0);
						
					}
				});
			}
			return jButton;
		}

		/**
		 * This method initializes jButton1	
		 * 	
		 * @return javax.swing.JButton	
		 */
		private JButton getJButton1() {
			if (jButton1 == null) {
				jButton1 = new JButton();
				jButton1.setText("Nein");
				jButton1.setSize(new Dimension(100, 25));
				jButton1.setPreferredSize(new Dimension(59, 26));
				jButton1.setLocation(new Point(139, 60));
				jButton1.addActionListener(new java.awt.event.ActionListener() {
					public void actionPerformed(java.awt.event.ActionEvent e) {
						System.exit(1);
						
	
					}
				});
			}
			return jButton1;
		}
		
		/**
		 * @param args
		 */
	//	public void main(String[] args) {
		public void main() {
			// TODO Auto-generated method stub
			SwingUtilities.invokeLater(new Runnable() {
				public void run() {
					ExitFenster thisClass = new ExitFenster();
					thisClass.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
					thisClass.setVisible(true);
				}
			});
		}

		/**
		 * This is the default constructor
		 */
		public ExitFenster() {
			super();
			initialize();
		}

		/**
		 * This method initializes this
		 * 
		 * @return void
		 */
		private void initialize() {
			this.setSize(269, 135);
			this.setResizable(false);
			this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
			this.setLocation(new Point(300, 300));
			this.setContentPane(getJContentPane());
			this.setTitle("Warnung!");
			this.setVisible(true);
		}

		/**
		 * This method initializes jContentPane
		 * 
		 * @return javax.swing.JPanel
		 */
		private JPanel getJContentPane() {
			if (jContentPane == null) {
				jContentPane = new JPanel();
				jContentPane.setLayout(new BorderLayout());
				jContentPane.add(getJPanel(), BorderLayout.CENTER);
			}
			return jContentPane;
		}

	}
 
Code:
ExitFenster.this.dispose();

(einfach nur
Code:
dispose();
würde auch reichen, aber das obere is eindeutiger verständlich)
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben