Fenster schließen aber nicht beenden

Status
Nicht offen für weitere Antworten.

xZise

Aktives Mitglied
Ich würde gerne Gegeben schließen, aber Programm nicht.

Wie soll der Code heißen?

Code:
Gegeben.setVisible(false);

geht nicht.

Code:
public class Programm extends JFrame {
	
	public static void main(String[] args) {
		StartFenster app = new StartFenster();
		app.setSize(450, 250);
		app.setLocation(200,200);
		app.setVisible(true);
	}
}

Soll offen Bleiben!

Code:
if (e.getActionCommand().equals(start.kreis.getText())) {
			.....
			geg.setLayout(new GridLayout(5, 3));
			geg.setSize(450, 250);
			geg.setLocation(200, 200);
			geg.setTitle("Kreisberechnung");
			geg.setVisible(true);
			geg.klicks = 1;
		}

Will ich wieder schließen
 
Wie sieht denn der Quellcode von dem Fenster 'Gegeben' aus? Normalerweise sollte das Fenster mit 'gegeben.setVisible(false)' geschlossen werden.
 

xZise

Aktives Mitglied
Also der Quellcode von gegeben ist:
Code:
// Created on 11.08.2005

package calculator;

//@author s_moeller

import java.awt.event.*;

import javax.swing.*;

public class Gegeben extends JFrame implements ItemListener {

	JRadioButton[] klick;

	JTextField[] werte, grund;

	JButton neu;

	int markiert, klicks;

	JMenuBar menue;

	JMenu menuDatei, menuBearbeiten, menuHelp, ausgabe, eingabe, kontakt;

	JMenuItem konfig, neurechnen, close, exit, hilfe, version, konSimon,
			konFabian;

	JRadioButtonMenuItem[] aus, ein;

	ButtonGroup gruppe1, gruppe2;
	
	
	
	public void itemStateChanged(ItemEvent e) {

		
		
		if (e.getSource() == klick[0]) {
			if (klick[0].isSelected()) {
				werte[0].setText(JOptionPane.showInputDialog(this,
						"Geben Sie den Radius in cm ein"));
			}
			markiert += 1;
		}
		if (e.getSource() == klick[1]) {
			if (klick[1].isSelected()) {
				werte[1].setText(JOptionPane.showInputDialog(this,
						"Geben Sie Seite A in cm ein"));
			}
			markiert += 1;
		}
		if (e.getSource() == klick[2]) {
			if (klick[2].isSelected()) {
				werte[2].setText(JOptionPane.showInputDialog(this,
						"Geben Sie Seite B in cm ein"));
			}
			markiert += 1;
		}
		if (e.getSource() == klick[3]) {
			if (klick[3].isSelected()) {
				werte[3].setText(JOptionPane.showInputDialog(this,
						"Geben Sie Seite C in cm ein"));
			}
			markiert += 1;
		}
		if (e.getSource() == klick[4]) {
			if (klick[4].isSelected()) {
				werte[4].setText(JOptionPane.showInputDialog(this,
						"Geben Sie den Durchmesser in cm ein"));
			}
			markiert += 1;
		}
		if (e.getSource() == klick[5]) {
			if (klick[5].isSelected()) {
				werte[5].setText(JOptionPane.showInputDialog(this,
						"Geben Sie den Umfang in cm ein"));
			}
			markiert += 1;
		}
		if (e.getSource() == klick[6]) {
			if (klick[6].isSelected()) {
				werte[6].setText(JOptionPane.showInputDialog(this,
						"Geben Sie die (Ober-)Fäche in cm² ein"));
			}
			markiert += 1;
		}
		if (e.getSource() == klick[7]) {
			if (klick[7].isSelected()) {
				werte[7].setText(JOptionPane.showInputDialog(this,
						"Geben Sie das Volumen in cm³ ein"));
			}
			markiert += 1;
		}

		// Berechnung für Kreis
		try {
			if (klicks == 1 & markiert == 1) {
				for (int i = 0; i <= 14; i++) {
					klick[i].setEnabled(false);
				}
				// wenn der Radius gegeben ist
				if (klick[0].isSelected()) {
					double r = Double.parseDouble(werte[0].getText());
					werte[4].setText(Double.toString(Runden.runde(2 * r)));
					werte[5].setText(Double.toString(Runden.runde(Math.PI * 2
							* r)));
					werte[6].setText(Double.toString(Runden.runde(Math
							.pow(r, 2)
							* Math.PI)));
				}
				// wenn der Durchmesser gegeben ist
				if (klick[4].isSelected()) {
					double d = Double.parseDouble(werte[4].getText());
					werte[0].setText(Double.toString(Runden.runde(d / 2)));
					werte[5]
							.setText(Double.toString(Runden.runde(Math.PI * d)));
					werte[6].setText(Double.toString(Runden.runde(Math.pow(
							d / 2, 2)
							* Math.PI)));
				}
				// wenn der Umfang gegeben ist
				if (klick[5].isSelected()) {
					double u = Double.parseDouble(werte[5].getText());
					werte[0].setText(Double.toString(Runden.runde(u / Math.PI
							/ 2)));
					werte[4]
							.setText(Double.toString(Runden.runde(u / Math.PI)));
					werte[6].setText(Double.toString(Runden.runde(Math
							.pow(u, 2)
							/ 4 * Math.PI)));
				}
				// wenn Fläche gegeben ist
				if (klick[6].isSelected()) {
					double f = Double.parseDouble(werte[6].getText());
					werte[0].setText(Double.toString(Runden.runde(Math.pow(f
							/ Math.PI, 0.5))));
					werte[4].setText(Double.toString(Runden.runde(Math.pow(
							(f / Math.PI), 0.5) * 2)));
					werte[5].setText(Double.toString(Runden.runde(2 - Math.pow(
							f * Math.PI, 0.5))));
				}
			}

			// Berechnung für Rechteck
			if (klicks == 2 & markiert == 2) {
				for (int i = 0; i <= 14; i++) {
					klick[i].setEnabled(false);
				}
				// wenn die Seite A gegeben ist
				if (klick[1].isSelected()) {
					double x = Double.parseDouble(werte[1].getText());
					if (klick[2].isSelected()) {
						double y = Double.parseDouble(werte[2].getText());
						werte[5].setText(Double.toString(Runden.runde(2 * x + 2
								* y)));
						werte[6].setText(Double.toString(Runden.runde(x * y)));
					}
					if (klick[5].isSelected()) {
						double u = Double.parseDouble(werte[5].getText());
						werte[2].setText(Double.toString(Runden
								.runde((u - x / 2) / 2)));
						werte[6].setText(Double.toString(Runden
								.runde((u - x / 2) * x)));
					}
					if (klick[6].isSelected()) {
						double f = Double.parseDouble(werte[6].getText());
						werte[2].setText(Double.toString(Runden.runde(f / x)));
						werte[5].setText(Double.toString(Runden.runde(f / x * 2
								+ x * 2)));
					}
				}

				// wenn die Seite B gegeben ist
				if (klick[2].isSelected() & !klick[1].isSelected()) {
					double y = Double.parseDouble(werte[2].getText());
					if (klick[5].isSelected()) {
						double u = Double.parseDouble(werte[5].getText());
						werte[1].setText(Double.toString(Runden
								.runde((u - 2 * y) / 2)));
						werte[6].setText(Double.toString(Runden
								.runde((u - 2 * y) / 2 * y)));
					}
					if (klick[6].isSelected()) {
						double f = Double.parseDouble(werte[6].getText());
						werte[1].setText(Double.toString(Runden.runde(f / y)));
						werte[5].setText(Double.toString(Runden.runde(f / y * 2
								+ y * 2)));
					}
				}
				// wenn der Umfang gegeben ist
				if (klick[5].isSelected() & !klick[1].isSelected()
						& !klick[2].isSelected()) {
					double f = Double.parseDouble(werte[6].getText());
					werte[1].setText(Double
							.toString(Runden.runde(Math.sqrt(f))));
					werte[2].setText(Double
							.toString(Runden.runde(Math.sqrt(f))));
					JOptionPane
							.showMessageDialog(
									this,
									"Da mit Fläche und Umfang keine Seiten eines Rechtecks berechnet werden kann, wurde das Ergebnis der Seiten für ein Quadrat eingefügt");
				}
				// wenn Fläche gegeben ist
				// wurde schon vorher berechnet
			}

			// Berechnung für Quadrat
			if (klicks == 3 & markiert == 1) {
				for (int i = 0; i <= 14; i++) {
					klick[i].setEnabled(false);
				}
				// wenn die Seite gegeben ist
				if (klick[1].isSelected()) {
					double x = Double.parseDouble(werte[1].getText());
					werte[5].setText(Double.toString(Runden.runde(x * 4)));
					werte[6].setText(Double.toString(Runden.runde(x * x)));
				}

				// wenn der Umfang gegeben ist
				if (klick[5].isSelected()) {
					double u = Double.parseDouble(werte[5].getText());
					werte[1].setText(Double.toString(Runden.runde(u / 4)));
					werte[6].setText(Double.toString(Runden.runde((u / 4)
							* (u / 4))));
				}
				// wenn Fläche gegeben ist
				if (klick[6].isSelected()) {
					double f = Double.parseDouble(werte[6].getText());
					werte[1].setText(Double
							.toString(Runden.runde(Math.sqrt(f))));
					werte[5].setText(Double.toString(Runden
							.runde(Math.sqrt(f) * 4)));
				}
			}

			// Berechnung für Kreis
			if (klicks == 4 & markiert == 1) {
				for (int i = 0; i <= 14; i++) {
					klick[i].setEnabled(false);
				}
				// wenn der Radius gegeben ist
				if (klick[0].isSelected()) {
					double r = Double.parseDouble(werte[0].getText());
					double v = 0.75 * Math.pow(r, 3) * Math.PI;
					double f = 4 * Math.pow(r, 2) * Math.PI;
					werte[4].setText(Double.toString(Runden.runde(r * 2)));
					werte[7].setText(Double.toString(Runden.runde(v)));
					werte[6].setText(Double.toString(Runden.runde(f)));
				}
				// wenn der Durchmesser gegeben ist
				if (klick[1].isSelected()) {
					double d = Double.parseDouble(werte[4].getText());
					double r = d / 2;
					double v = 0.75 * Math.pow(r, 3) * Math.PI;
					double f = 4 * Math.pow(r, 2) * Math.PI;
					werte[0].setText(Double.toString(Runden.runde(r)));
					werte[7].setText(Double.toString(Runden.runde(v)));
					werte[6].setText(Double.toString(Runden.runde(f)));
				}
				// wenn das Volumen gegeben ist
				if (klick[7].isSelected()) {
					double v = Double.parseDouble(werte[7].getText());
					double r = Math.pow(v / Math.PI / 0.75, 1 / 3.);
					double f = 4 * Math.pow(r, 2) * Math.PI;
					werte[0].setText(Double.toString(Runden.runde(r)));
					werte[4].setText(Double.toString(Runden.runde(r * 2)));
					werte[6].setText(Double.toString(Runden.runde(f)));
				}
				// wenn Oberfläche gegeben ist
				if (klick[6].isSelected()) {
					double f = Double.parseDouble(werte[6].getText());
					double r = Math.sqrt(f / Math.PI / 4);
					double v = 0.75 * Math.pow(r, 3) * Math.PI;
					werte[0].setText(Double.toString(Runden.runde(r)));
					werte[4].setText(Double.toString(Runden.runde(r * 2)));
					werte[7].setText(Double.toString(Runden.runde(v)));
				}
			}

			// Berechnung für Quader
			if (klicks == 5 & markiert == 3) {
				for (int i = 0; i <= 14; i++) {
					klick[i].setEnabled(false);
				}
				// wenn die Seite A gegeben ist
				if (klick[1].isSelected()) {
					double x = Double.parseDouble(werte[1].getText());
					// wenn die Seiten A + B gegeben sind
					if (klick[2].isSelected()) {
						double y = Double.parseDouble(werte[2].getText());
						// wenn die Seiten A + B + C gegeben sind
						if (klick[3].isSelected()) {
							double z = Double.parseDouble(werte[3].getText());
							werte[7].setText(Double.toString(Runden.runde(x * y
									* z)));
							werte[6].setText(Double.toString(Runden
									.runde((x * y) * 2 + (x * z) * 2 + (z * y)
											* 2)));
						}
						// wenn die Seiten A + B und das Volumen gegeben sind
						if (klick[7].isSelected()) {
							double v = Double.parseDouble(werte[7].getText());
							werte[3].setText(Double.toString(Runden.runde(v
									/ (x * y))));
							werte[6].setText(Double.toString(Runden
									.runde((x * y) * 2 + (x * v / (x * y)) * 2
											+ (v / (x * y) * y) * 2)));
						}
						// wenn die Seiten A + B und die Oberfläche gegeben sind
						if (klick[6].isSelected()) {
							double v = Double.parseDouble(werte[6].getText());
							werte[3].setText(Double.toString(Runden.runde(v
									/ (x * y))));
							werte[7].setText(Double.toString(Runden
									.runde((x * y) * 2 + (x * v / (x * y)) * 2
											+ (v / (x * y) * y) * 2)));
						}
					}
					// wenn die Seiten A + C gegeben sind
					if (klick[3].isSelected()) {
						double z = Double.parseDouble(werte[3].getText());
						// wenn die Seiten A + C und das Volumen gegeben sind
						if (klick[7].isSelected()) {
							double v = Double.parseDouble(werte[7].getText());
							double b = v / (x * z);
							double o = (x * z) * 2 + (x * v / (x * z)) * 2
									+ (v / (x * z) * z) * 2;
							if (o < 0) {
								throw new Exception("Negative Zahl!");
							}
							if (b < 0) {
								throw new Exception("Negative Zahl!");
							}
							werte[2].setText(Double.toString(Runden.runde(v
									/ (x * z))));
							werte[6].setText(Double.toString(Runden.runde(o)));
						}
						// wenn die Seiten A + C und die Oberfläche gegeben sind
						if (klick[6].isSelected()) {
							double f = Double.parseDouble(werte[6].getText());
							double y = (f - x / 2 - z / 2) / 2;
							double v = y * x * z;
							if (y < 0) {
								throw new Exception("Negative Zahl!");
							}
							if (v < 0) {
								throw new Exception("Negative Zahl!");
							}
							werte[2].setText(Double.toString(Runden.runde(y)));
							werte[7].setText(Double.toString(Runden.runde(v)));
						}
					}
					// wenn die Seite A, die Oberfläche und das Volumen gegeben
					// sind
					if (klick[6].isSelected() && klick[7].isSelected()) {
						JOptionPane
								.showMessageDialog(
										this,
										"Es ist nicht möglich aus der Fläche, dem Volumen und einer Seite, die beiden anderen Seiten auszurechnen.");
						neu.doClick();
					}
				}
				// wenn die Seite B gegeben ist
				if (klick[2].isSelected()) {
					double y = Double.parseDouble(werte[2].getText());
					// und die Seite C
					if (klick[3].isSelected()) {
						double z = Double.parseDouble(werte[3].getText());
						// und das Volumen
						if (klick[7].isSelected()) {
							double v = Double.parseDouble(werte[7].getText());
							double x = v / y / z;
							double f = x * 2 + z * 2 + y * 2;
							if (x < 0) {
								throw new Exception("Negative Zahl!");
							}
							if (f < 0) {
								throw new Exception("Negative Zahl!");
							}
							werte[1].setText(Double.toString(Runden.runde(x)));
							werte[6].setText(Double.toString(Runden.runde(f)));
						}
						// und die Oberfläche
						if (klick[6].isSelected()) {
							double f = Double.parseDouble(werte[6].getText());
							double x = (f - y / 2 - z / 2) / 2;
							double v = x * z * y;
							if (x < 0) {
								throw new Exception("Negative Zahl!");
							}
							if (v < 0) {
								throw new Exception("Negative Zahl!");
							}
							werte[1].setText(Double.toString(Runden.runde(x)));
							werte[7].setText(Double.toString(Runden.runde(v)));
						}
					}
				}
				// wenn die Seite C, das Volumen und die Oberfläche angegeben
				// sind
				// es gibt keine weiteren Kombinationen mit C!
				if (klick[3].isSelected() && klick[7].isSelected()
						&& klick[6].isSelected()) {
					JOptionPane
							.showMessageDialog(
									this,
									"Es ist nicht möglich aus der Fläche, dem Volumen und einer Seite, die beiden anderen Seiten auszurechnen.");
					neu.doClick();
				}
				// wenn die Oberfläche/das Volumen gegeben ist
				// keine weiteren Kombinationsmöglichkeiten
			}

			// Berechnung für Würfel
			if (klicks == 6 & markiert == 1) {
				for (int i = 0; i <= 14; i++) {
					klick[i].setEnabled(false);
				}
				// wenn die Seite gegeben ist
				if (klick[1].isSelected()) {
					double x = Double.parseDouble(werte[1].getText());
					double v = x * x * x;
					double f = x * x * 6;
					if (v < 0) {
						throw new Exception("Negative Zahl!");
					}
					if (f < 0) {
						throw new Exception("Negative Zahl!");
					}
					werte[7].setText(Double.toString(Runden.runde(v)));
					werte[6].setText(Double.toString(Runden.runde(f)));
				}
				// wenn das Volumen gegeben ist
				if (klick[7].isSelected()) {
					double v = Double.parseDouble(werte[7].getText());
					double x = Math.pow(v, 1 / 3.);
					double f = Math.pow(Math.pow(v, 1 / 3.), 2) * 6;
					if (x < 0) {
						throw new Exception("Negative Zahl!");
					}
					if (f < 0) {
						throw new Exception("Negative Zahl!");
					}
					werte[1].setText(Double.toString(Runden.runde(x)));
					werte[6].setText(Double.toString(Runden.runde(f)));
				}
				// wenn Oberfläche gegeben ist
				if (klick[6].isSelected()) {
					double f = Double.parseDouble(werte[6].getText());
					double x = Math.sqrt(f) / 6;
					double v = Math.pow(x, 3);
					if (x < 0) {
						throw new Exception("Negative Zahl!");
					}
					if (v < 0) {
						throw new Exception("Negative Zahl!");
					}
					werte[1].setText(Double.toString(Runden.runde(x)));
					werte[7].setText(Double.toString(Runden.runde(v)));
				}
			}
		} catch (NumberFormatException nfe) {
			JOptionPane.showMessageDialog(this,
					"Bitte geben Sie nur Zahlen ein!");
			neu.doClick();
		} catch (Exception nz) {
			JOptionPane.showMessageDialog(this,
					"Sie haben eine negative Zahl produziert!");
			neu.doClick();
		}
	}

	Gegeben() {
		
		

		menue = new JMenuBar();
		menuDatei = new JMenu("Datei");
		neurechnen = new JMenuItem("Neue Rechnung", KeyEvent.VK_N);
		neurechnen.addActionListener(new KnopfAktionNeu());
		konfig = new JMenuItem("Konfiguration", KeyEvent.VK_K);
		konfig.addActionListener(new Menue());
		close = new JMenuItem("Schließen", KeyEvent.VK_S);
		close.addActionListener(new Menue());
		exit = new JMenuItem("Beenden", KeyEvent.VK_B);
		exit.addActionListener(new Menue());
		menuDatei.add(neurechnen);
		menuDatei.add(konfig);
		menuDatei.add(close);
		menuDatei.addSeparator();
		menuDatei.add(exit);

		menuBearbeiten = new JMenu("Bearbeiten");
		ausgabe = new JMenu("Ausgabe in");
		aus = new JRadioButtonMenuItem[4];
		aus[0] = new JRadioButtonMenuItem("cm", true);
		aus[1] = new JRadioButtonMenuItem("dm");
		aus[2] = new JRadioButtonMenuItem("m");
		aus[3] = new JRadioButtonMenuItem("km");
		eingabe = new JMenu("Eingabe in");
		ein = new JRadioButtonMenuItem[4];
		ein[0] = new JRadioButtonMenuItem("cm", true);
		ein[1] = new JRadioButtonMenuItem("dm");
		ein[2] = new JRadioButtonMenuItem("m");
		ein[3] = new JRadioButtonMenuItem("km");
		gruppe1 = new ButtonGroup();
		gruppe2 = new ButtonGroup();
		for (int i = 0; i < 4; i++) {
			ein[i].setEnabled(false);
			gruppe1.add(aus[i]);
			ausgabe.add(aus[i]);
			aus[i].addItemListener(this);
			aus[i].addActionListener(new Menue());
			gruppe2.add(ein[i]);
			eingabe.add(ein[i]);
			ein[i].addItemListener(this);
			ein[i].addActionListener(new Menue());
		}

		menuBearbeiten.add(eingabe);
		menuBearbeiten.add(ausgabe);

		menuHelp = new JMenu("?");

		hilfe = new JMenuItem("Hilfe", KeyEvent.VK_H);
		hilfe.addActionListener(new Menue());

		kontakt = new JMenu("Kontakt...");
		konSimon = new JMenuItem("...Simon");
		konSimon.addActionListener(new Menue());
		konFabian = new JMenuItem("...Fabian");
		konFabian.addActionListener(new Menue());

		version = new JMenuItem("Info", KeyEvent.VK_I);
		version.addActionListener(new Menue());

		kontakt.add(konSimon);
		kontakt.add(konFabian);

		menuHelp.add(hilfe);
		menuHelp.add(kontakt);
		menuHelp.add(version);

		menue.add(menuDatei);
		menue.add(menuBearbeiten);
		menue.add(menuHelp);

		this.setJMenuBar(menue);

		klick = new JRadioButton[8];
		klick[0] = new JRadioButton("Radius");
		klick[1] = new JRadioButton("Seite A");
		klick[2] = new JRadioButton("Seite B");
		klick[3] = new JRadioButton("Seite C");
		klick[4] = new JRadioButton("Durchmesser");
		klick[5] = new JRadioButton("Umfang");
		klick[6] = new JRadioButton("Fläche/Oberfläche");
		klick[7] = new JRadioButton("Volumen");

		for (int i = 0; i < 8; i++) {
			klick[i].addItemListener(this);
		}
		werte = new JTextField[8];
		grund = new JTextField[8];
		for (int i = 0; i < 8; i++) {
			werte[i] = new JTextField("");
			werte[i].setEditable(false);
			grund[i] = new JTextField("");
			grund[i].setEditable(false);
		}

		neu = new JButton("Neue Rechnung");
		neu.addActionListener(new KnopfAktionNeu());
	}

	class KnopfAktionNeu implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			Gegeben geg = new Gegeben();
			for (int i = 0; i < 8; i++) {
				klick[i].setSelected(false);
				klick[i].setEnabled(true);
				geg.repaint();
				werte[i].setText("");
				grund[i].setText("");
			}
			markiert = 0;
		}
	}

	class Menue extends JFrame implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			int i, j = 8;
			Gegeben geg = new Gegeben();
			if (e.getActionCommand() == version.getText()) {
				
			} else if (e.getActionCommand() == exit.getText()) {
				System.exit(0);
			} else if (e.getActionCommand() == hilfe.getText()) {
				
			} else if (e.getActionCommand() == konSimon.getText()) {
				
			} else if (e.getActionCommand() == konFabian.getText()) {
				
			} else if (e.getActionCommand() == close.getText()) {
				geg.setVisible(false);
			} else if (aus[0].isSelected()) {
				for (i = 0; i < 8; i++) {
					grund[i].setText(werte[i].getText());
				}
			} else if (aus[1].isSelected()) {
				for (i = 0; i < 6; i++) {
					try {
						double x = Double.parseDouble(werte[i].getText());
						x /= 10;
						grund[i].setText(Double.toString(x));
					} catch (NumberFormatException nfe) {
						continue;
					}
				}
				try {
					double x = Double.parseDouble(werte[6].getText());
					x /= 100;
					grund[6].setText(Double.toString(x));
				} catch (NumberFormatException nfe) {
					grund[6].setText("Hallo!");
				}
				try {
					double x = Double.parseDouble(werte[7].getText());
					x /= 1000;
					grund[7].setText(Double.toString(x));
				} catch (NumberFormatException nfe) {
					grund[7].setText("Hallo!");
				}
			} else if (aus[2].isSelected()) {
				for (i = 0; i < 6; i++) {
					try {
						double x = Double.parseDouble(werte[i].getText());
						x /= 100;
						grund[i].setText(Double.toString(x));
					} catch (NumberFormatException nfe) {
						continue;
					}
				}
				try {
					double x = Double.parseDouble(werte[6].getText());
					x /= 10000;
					grund[6].setText(Double.toString(x));
				} catch (NumberFormatException nfe) {
					grund[6].setText("Hallo!");
				}
				try {
					double x = Double.parseDouble(werte[7].getText());
					x /= 1000000;
					grund[7].setText(Double.toString(x));
				} catch (NumberFormatException nfe) {
					grund[7].setText("Hallo!");
				}
			} else if (aus[3].isSelected()) {
				for (i = 0; i < 6; i++) {
					try {
						double x = Double.parseDouble(werte[i].getText());
						x /= 100000;
						grund[i].setText(Double.toString(x));
					} catch (NumberFormatException nfe) {
						continue;
					}
				}
				try {
					double x = Double.parseDouble(werte[6].getText());
					x /= Math.pow(10,13);
					grund[6].setText(Double.toString(x));
				} catch (NumberFormatException nfe) {
					grund[6].setText("Hallo!");
				}
				try {
					double x = Double.parseDouble(werte[7].getText());
					x /= Math.pow(10, 13);
					grund[7].setText(Double.toString(x));
				} catch (NumberFormatException nfe) {
					grund[7
					      ].setText("Hallo!");
				}
			} else if (j == 4) {
				System.out.println("Noch nicht implentiert!");
			} else if (j == 5) {
				System.out.println("Noch nicht implentiert!");
			} else if (j == 6) {
				System.out.println("Noch nicht implentiert!");
			} else if (j == 7) {
				System.out.println("Noch nicht implentiert!");
			} else {
				JOptionPane.showMessageDialog(this,
						"<html><h3>Fehler</h3></html>\nKonnte nicht geladen werden", "Fehler", 2);
			}
		}
	}
}

Da bitte...
 

schmalhans

Bekanntes Mitglied
ist eigentlich ganz einfach:

Code:
Gegeben.dispose();

ps: RE AUS DEM URLAUB! ^^
 
B

Beni

Gast
Wieso Menue von JFrame erbt, verstehe ich nicht (und ich glaube, das ist auch nicht sinnvoll).

Aber lassens wirs mal so.
Wenn du direkt "setVisible" aufrufst, spricht die setVisible-Methode des Menues an, und das ist natürlich falsch (Wenn du Menue nicht von JFrame erben lassen würdest, könntest du direkt "setVisible( false )" hinschreiben).
Du benötigst also die Referenz auf Gegeben. Die "this"-Referenz funktioniert in diesem fall nicht, da sie eben auf das Menue zeigen würde.
"Gegeben" ist kein Referenz, und funktioniert daher auch nicht.

Der Syntax den Du benötigst lautet:
Code:
         } else if(e.getActionCommand() == close.getText()) {
            Gegeben.this.setVisible(false);

Eine andere Variante: du machst eine Variable "Gegeben gegeben" in Menue, und benutzt dann diese Variable.
Code:
class Menue extends JFrame implements ActionListener {
       private Gegeben gegeben;
       public Menue( Gegeben gegeben ){
           this.gegeben = gegeben;
       }
       
      public void actionPerformed(ActionEvent e) {
         ...
         } else if(e.getActionCommand() == close.getText()) {
            gegeben.setVisible(false);
         
      }
   }

Die erste Variante ist allerdings einfacher.

P.S. niemals Strings mit "==" vergleichen, immer "equals" benutzen. Wenigstens solange wie du nicht verstehst warum ich das schreibe :bae: Lies dazu mal ein bisschen in der FAQ :###
 

xZise

Aktives Mitglied
Also Menue erbt von JFrame, weil dort OptionsPane's angezeigt werden!

Dannoch thx. Funktioniert.

Code:
if (e.getActionCommand() == version.getText()) {
				String Version = "2.2.4";
				JOptionPane.showMessageDialog(this,
						"\u00A9 by Simon Möller und Fabian Neundorf\nVersion: "
								+ Version, "Calculator", 1);
			}

Das mit == und equals ist kein Problem. Nur wurde in einer Lehr-DVD das so gezeigt.

-answer-
 
B

Beni

Gast
Commodore Fabianus hat gesagt.:
Also Menue erbt von JFrame, weil dort OptionsPane's angezeigt werden!
Ja und? Benutz doch das "Gegeben"-Frame als Elter für die JOptionPane's! Oder übergib einfach "null".
Solange du das Menue-Frame nicht anzeigst, ist es ziemlich nutzlos :wink:
 

xZise

Aktives Mitglied
Beni hat gesagt.:
Commodore Fabianus hat gesagt.:
Also Menue erbt von JFrame, weil dort OptionsPane's angezeigt werden!
Ja und? Benutz doch das "Gegeben"-Frame als Elter für die JOptionPane's! Oder übergib einfach "null".
Solange du das Menue-Frame nicht anzeigst, ist es ziemlich nutzlos :wink:

ALso
Code:
extends Gegeben
?

Wie mache ich das eigentlich, wenn ich von einer anderen Klasse aus schließen will?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
_user_q Kann man ein 2. JavaFX-Fenster auch beenden (exit) statt schließen (close) lassen? AWT, Swing, JavaFX & SWT 8
T Fenster schließen AWT, Swing, JavaFX & SWT 4
E JavaFX JavaFX Fenster nicht schließen AWT, Swing, JavaFX & SWT 4
thet1983 offne Fenster gemeinsam schließen AWT, Swing, JavaFX & SWT 8
F JavaFX KeyListener zum Fenster öffnen/schließen AWT, Swing, JavaFX & SWT 9
M Swing Einzelne Fenster schließen AWT, Swing, JavaFX & SWT 2
M Swing ButtonListener Fenster schließen AWT, Swing, JavaFX & SWT 15
M Fenster schließen - Listener AWT, Swing, JavaFX & SWT 5
S Fremdes Fenster schließen AWT, Swing, JavaFX & SWT 2
E Fenster schließen und ein anderes öffnen AWT, Swing, JavaFX & SWT 9
X Öffnen Schließen Fenster AWT, Swing, JavaFX & SWT 4
0 Fenster schließen AWT, Swing, JavaFX & SWT 2
B AWT mehrere Fenster schließen AWT, Swing, JavaFX & SWT 8
D Fenster schließen AWT, Swing, JavaFX & SWT 7
S AWT Fenster schließen und Programm beenden AWT, Swing, JavaFX & SWT 10
2 Zusätzliches Fenster mit OK-Button schließen AWT, Swing, JavaFX & SWT 7
B Fenster schließen AWT, Swing, JavaFX & SWT 4
I Fenster schließen - Button AWT, Swing, JavaFX & SWT 13
G Swing Fenster schließen AWT, Swing, JavaFX & SWT 6
E Fenster schließen über X AWT, Swing, JavaFX & SWT 8
D aktuells fenster + letztes fenster schließen AWT, Swing, JavaFX & SWT 5
R [gelöst]Fenster schließen - trotz Endlosschleife in der Paint-Methode? AWT, Swing, JavaFX & SWT 3
A Eins von zwei offnen Fenster/Frames schließen AWT, Swing, JavaFX & SWT 2
J Fenster schließen ohne das Programm zu beenden AWT, Swing, JavaFX & SWT 3
F Programmiertes Fenster schließen AWT, Swing, JavaFX & SWT 3
P SWT Fenster schließen abfangen AWT, Swing, JavaFX & SWT 4
S Einzelne Frame Fenster schließen AWT, Swing, JavaFX & SWT 2
S Einzelne Frame Fenster schließen AWT, Swing, JavaFX & SWT 2
G Wie schließen Fenster automatisch? AWT, Swing, JavaFX & SWT 12
W JDialog ohne zum Fenster Schließen AWT, Swing, JavaFX & SWT 2
D Fenster schließen mit JButton AWT, Swing, JavaFX & SWT 2
K Fenster lässt sich nicht schließen =( AWT, Swing, JavaFX & SWT 16
B Fenster soll sich bei auf Druck auf ESC schließen AWT, Swing, JavaFX & SWT 5
G Nur ein Fenster schließen? AWT, Swing, JavaFX & SWT 3
G Fenster schließen? AWT, Swing, JavaFX & SWT 4
S Bei ESC Fenster schließen AWT, Swing, JavaFX & SWT 6
H Fenster mit dem x-Button schließen AWT, Swing, JavaFX & SWT 5
A Fenster über Menü schließen AWT, Swing, JavaFX & SWT 2
G Fenster anzeigen und schließen? AWT, Swing, JavaFX & SWT 15
G Fenster bzw. Dialog schließen AWT, Swing, JavaFX & SWT 3
S Fenster schließen?! AWT, Swing, JavaFX & SWT 5
M suche geeignetes Fenster zur Anzeige AWT, Swing, JavaFX & SWT 49
berserkerdq2 Kann ich ein Rechteck mittig im Fenster halten, egal wie ich die Bildschirmgröße verändere? AWT, Swing, JavaFX & SWT 3
W 2 JTables in einem Swing-Fenster? AWT, Swing, JavaFX & SWT 5
berserkerdq2 Wie füge ich ein Bild in javafx mit dem Scenebuilder ein, das automatisch mitgezogen wird, wenn das Fenster vergrößert wird oder Vollbildmodus AWT, Swing, JavaFX & SWT 6
TheSepp Fenster um x Pixel bewegen, wenn man auf dem Knopf drückt AWT, Swing, JavaFX & SWT 10
J JavaFx PDF in einem Element in einem Fenster anzeigen. AWT, Swing, JavaFX & SWT 11
K JavaFX unterschiedliche (mehrere Fenster) in seperater Main Methode AWT, Swing, JavaFX & SWT 26
L Swing Files abspeichern mit Save as Dialog Fenster AWT, Swing, JavaFX & SWT 5
OZAN86 einfaches Fenster öffnen scheitert AWT, Swing, JavaFX & SWT 18
G Zuletzt aktives Fenster, vor dem aktuell aktiven AWT, Swing, JavaFX & SWT 2
sserio Kann man bei JavaFx ein Fenster aufkommen lassen? AWT, Swing, JavaFX & SWT 1
Z GUI Forms - Mehrere Fenster in einem Projekt AWT, Swing, JavaFX & SWT 18
S Swing Alles beenden bei Fenster mit Scroll-Balken AWT, Swing, JavaFX & SWT 6
CptK windowClosed() nur aufrufen, wenn Fenster nicht über Button geschlossen wird AWT, Swing, JavaFX & SWT 1
W Zweites/neues Fenster durch Button öffnen AWT, Swing, JavaFX & SWT 6
CptK Fokus auf geöffnetes Zweit-Fenster setzen und Eingaben außerhalb blocken AWT, Swing, JavaFX & SWT 2
B Text mit Absatz + OK-Button, der Fenster wieder schließt AWT, Swing, JavaFX & SWT 7
MiMa JavaFX Fenster in JavaFX öffnen Schliessen (Initialisierung) AWT, Swing, JavaFX & SWT 20
N Kontextmenü (Popup-Fenster) erstellen AWT, Swing, JavaFX & SWT 3
L Hintergrundbild im Fenster darstellen AWT, Swing, JavaFX & SWT 9
P JavaFX Fenster wird nicht angezeigt (Mac) AWT, Swing, JavaFX & SWT 13
VPChief Buttons Reagieren erst wenn ich Fenster minimiere AWT, Swing, JavaFX & SWT 4
B JavaFX TextField Eingabe in neues Fenster übernehmen AWT, Swing, JavaFX & SWT 4
N Drag and Drop Fenster AWT, Swing, JavaFX & SWT 11
A Swing JTextField an Button übergeben für Popup-Fenster funktioniert nicht AWT, Swing, JavaFX & SWT 3
P JavaFX Zugriff auf Fenster/Layout-Container in eigenen Klassen AWT, Swing, JavaFX & SWT 5
Bluedaishi JavaFX Programm start mit zwei scenen bzw Fenster AWT, Swing, JavaFX & SWT 1
J Fenster mit Inhalten aus einem Array Füllen AWT, Swing, JavaFX & SWT 4
S Swing Fenster State Machine AWT, Swing, JavaFX & SWT 1
A Fenster genau unterhalb von JTextField anzeigen AWT, Swing, JavaFX & SWT 1
J Overlay Panel statt neues Fenster AWT, Swing, JavaFX & SWT 6
S Swing Bei start des Programmes kein Fenster zu sehen AWT, Swing, JavaFX & SWT 1
X Neues Fenster mit Button öffnen und bearbeiten AWT, Swing, JavaFX & SWT 4
platofan23 JAVAFX zweites Fenster öffnen AWT, Swing, JavaFX & SWT 2
M JavaFX Altes Fenster (FXML Datei) löschen AWT, Swing, JavaFX & SWT 16
P JavaFX Fenster lädt nicht mehr AWT, Swing, JavaFX & SWT 4
I AWT Listener während man in anderem Fenster ist AWT, Swing, JavaFX & SWT 4
S JavaFX Fenster aufkommen lassen, wenn mit der Maus über bestimmten Bereich fahren AWT, Swing, JavaFX & SWT 1
L Java- UI zweites Fenster aus einer anderen Klasse öffnen durch ButtonClick AWT, Swing, JavaFX & SWT 4
D Swing Neues (3.) Fenster öffnen AWT, Swing, JavaFX & SWT 2
G JavaFX Fenster 1 Array übertragen zur Fenster 2 AWT, Swing, JavaFX & SWT 0
I JavaFX Fenster wird auf einem anderen Rechner anders dargestellt AWT, Swing, JavaFX & SWT 5
K Fenster welches den Sieger anzeigt AWT, Swing, JavaFX & SWT 5
O JavaFX Fenster scließen AWT, Swing, JavaFX & SWT 4
A Swing Fenster ändert Position bei Mausklick nicht AWT, Swing, JavaFX & SWT 2
S SWT neues Fenster, buttons aus alten etc... AWT, Swing, JavaFX & SWT 0
D Java FXML mehrere Fenster AWT, Swing, JavaFX & SWT 4
L Input aus Sub-Fenster Startfenster übergeben AWT, Swing, JavaFX & SWT 5
B AWT Fenster schließt nicht AWT, Swing, JavaFX & SWT 2
H JavaFX Kriege fehler beim Fenster wechseln AWT, Swing, JavaFX & SWT 7
G Swing Wenn ich mein JFrame Fenster vergrößere die Inhalte anpassen AWT, Swing, JavaFX & SWT 1
U Swing Inhalt vom Fenster wird erst durch Hovern oder Klicken sichtbar AWT, Swing, JavaFX & SWT 3
A Nach klick auf Button neuen Inhalt im gleichen Fenster AWT, Swing, JavaFX & SWT 3
K JavaFX ObservableList + Fenster AWT, Swing, JavaFX & SWT 6
windl Transparentes / halbtransparentes Fenster AWT, Swing, JavaFX & SWT 1
K Fenster mittig im Vollbildschirm - ok, aber ... AWT, Swing, JavaFX & SWT 2
N Swing Sorry nicht mal ein Fenster öffnen... AWT, Swing, JavaFX & SWT 19
S actionlistener mit 2 fenster integrieren AWT, Swing, JavaFX & SWT 11
G Event Handling TableView daten in ein neues Fenster herauslesen? AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben