Swing Menubar Close, Minimize, Maximize button

CHAOSFISCH

Bekanntes Mitglied
Servus,

kann mir jemand sagen wie ich direkt neben diesen "Buttons" einen 4. für minimize to Tray einfügen kann?

2.
Wenn man auf X klickt führt das Programm die DefaultCloseOperation ja aus, ich will den User fragen, ob er die Anwendung wirklich beenden will.

Mein Ansatz:
Ändern der defaultCloseOperation auf Do nothing...
Hinzufügen eines WindowListeners. In der Methode windowClosing wird dann ein JOptionPane angezeigt.

Tatsächliches Verhalten:
Beim drücken des X verschwindet das Programm aus der Taskleiste, es läuft jedoch noch weiter. Ein JOptionPane wird nicht angezeigt.
 

AlexSpritze

Bekanntes Mitglied
Zur ersten Frage: Mittels JWindow könntest du dein eigenes Fenster designen, also auch welche Buttons da oben rechts erscheinen sollen. Wäre mein Ansatz.
 

CHAOSFISCH

Bekanntes Mitglied
Glaub ich jetzt ersteinmal ohne Codebeispiel nicht. Wenn die Default Operation auf DO_NOTHING_ON_CLOSE gesetzt ist, schließt sich das Fenster auch nicht.
Java:
        app.getMainFrame().setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
        app.getMainFrame().addWindowListener(new WindowAdapter() {});

Nur kurz als Beispiel.
Fenster verschwindet, Prozess läuft noch.
 

Michael...

Top Contributor
Mit Codebeispiel meinte ich ein komplettes Bsp.
Wenn ich die beiden Zeilen an einem Frame anwende verschwindet bei mir (und mit ziemlicher Sicherheit bei allen anderen) gar nichts:
Java:
JFrame frame = new JFrame();
frame.setBounds(0, 0, 300, 300);
frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
frame.addWindowListener(new WindowAdapter() {});
frame.setVisible(true);
 

Illuvatar

Top Contributor
Das heißt also ziemlich wahrscheinlich, dass das [c]app.getMainFrame()[/c] Objekt ein anderes ist als das, das du sichtbar machst.
 

jgh

Top Contributor
zu deiner 2. Frage, so könnte man das bpw. realisieren:

Java:
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.WindowConstants;

public class MyJFrame extends JFrame {
	public static void main(String[] args) {
		new MyJFrame();
	}

	MyJFrame mjf = this;

	public MyJFrame() {
		setSize(300, 300);
		setLocationRelativeTo(null);
		closeWindowAndApplicationQuestion();
		setVisible(true);
	}

	private void closeWindowAndApplicationQuestion() {

		this.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				Object[] options = { "Ja", "Nein" };
				int selected = JOptionPane.showOptionDialog(mjf,
						"Wollen Sie die gesamte Anwendung schliessen ?",
						"Anwendung beenden", JOptionPane.DEFAULT_OPTION,
						JOptionPane.INFORMATION_MESSAGE, null, options,
						options[0]);
				if (selected == 0) {
					// DB closen, Props wegschreiben...und was auch sonst noch
					// gemacht werden muss.
					System.exit(0);
				} else {
					mjf.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);

					return;

				}

			}
		});
	}

}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
emma_louisa JavaFX MenuBar Zweitfenster; bei Button "Abbrechen" nur das Zweitfenster schließen AWT, Swing, JavaFX & SWT 2
C SWT MenuBar & MenuItems Fokus wenn F10 unterdrücken/entfernen AWT, Swing, JavaFX & SWT 9
S JavaFX MenuItem in hoher (height größer) MenuBar vertikal zentrieren AWT, Swing, JavaFX & SWT 4
M JavaFX MenuBar und Camera zusammen verwenden AWT, Swing, JavaFX & SWT 2
D Apple MenuBar Eintrag "java" AWT, Swing, JavaFX & SWT 15
B Doppelte MenuBar -> Nach Minimieren verschwunden AWT, Swing, JavaFX & SWT 3
E JavaFX MenuBar und ToolBar zu einem Bereich AWT, Swing, JavaFX & SWT 3
Z JavaFX Inhalt einer ViewTable durch Aktion einer Menubar ändern welche in einer anderen fxml ist AWT, Swing, JavaFX & SWT 4
O MenuBar wird nicht angezeigt AWT, Swing, JavaFX & SWT 0
C Swing MenuBar als eigene Klasse AWT, Swing, JavaFX & SWT 4
A JavaFX Menubar wird von Canvas überzeichnet AWT, Swing, JavaFX & SWT 8
H Timer/Stoppuhr in MenuBar anzeigen AWT, Swing, JavaFX & SWT 4
S MenuBar ActionListener Event ... AWT, Swing, JavaFX & SWT 6
F Swing MenuBar wird verdeckt AWT, Swing, JavaFX & SWT 2
S Vereinen von zwei MenuBar AWT, Swing, JavaFX & SWT 3
P jMenu ohne Menubar - Jigloo zeigts AWT, Swing, JavaFX & SWT 2
G MenuBar selectieren AWT, Swing, JavaFX & SWT 9
C menubar border AWT, Swing, JavaFX & SWT 2
R Menubar wird auf Mac OS X nicht angezeigt AWT, Swing, JavaFX & SWT 5
M CoolBar, MenuBar und StatusLine aktualisieren AWT, Swing, JavaFX & SWT 2
T Menubar Problem AWT, Swing, JavaFX & SWT 2
R Menubar immer updaten! AWT, Swing, JavaFX & SWT 9
P MenuBar über Canvas AWT, Swing, JavaFX & SWT 2
T Shortcut für Eintrag aus MenuBar AWT, Swing, JavaFX & SWT 3
M icons im menubar ? AWT, Swing, JavaFX & SWT 5
Juelin Probleme bei Stage.close() AWT, Swing, JavaFX & SWT 23
_user_q Kann man ein 2. JavaFX-Fenster auch beenden (exit) statt schließen (close) lassen? AWT, Swing, JavaFX & SWT 8
H Swing BufferedReader.close() hängt im SwingWorker AWT, Swing, JavaFX & SWT 1
J JTabbedPane: close Button Problem AWT, Swing, JavaFX & SWT 2
R JavaFX Stage.close() funktioniert nicht im jar-File AWT, Swing, JavaFX & SWT 2
A Mouse event und exit on close AWT, Swing, JavaFX & SWT 11
Luk10 Überschreiben von JFrame: Close AWT, Swing, JavaFX & SWT 4
B AWT ueber close schliesen AWT, Swing, JavaFX & SWT 8
L Fenster inaktiv setzen / deaktivieren (unable to close window) AWT, Swing, JavaFX & SWT 16
P JDialog Close-Button inaktiv machen AWT, Swing, JavaFX & SWT 1
F JFrame Close Problem AWT, Swing, JavaFX & SWT 1
M close methode AWT, Swing, JavaFX & SWT 3
hdi non-default close operation bei JDialog AWT, Swing, JavaFX & SWT 2
S Fensterbuttons (min / max / close) ausblenden AWT, Swing, JavaFX & SWT 5
G Listener fuer Window Close AWT, Swing, JavaFX & SWT 2
thE_29 Modaler Dialog - close on not focus AWT, Swing, JavaFX & SWT 3
C JFrame ohne Minimize/Maximize-Widget AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen


Oben