|
ubun-tune-wbie
Anmeldungsdatum: 9. Dezember 2014
Beiträge: 6
|
Halo, wahrscheinlich bin ich hier garnicht richtig, aber ich wußte nicht wohin mit der Frage. Ich habe immer mal wieder gehört, daß das schließen (v. Fenstern, Dokumenten u. Anwendungen) über das Datei-Menüe (schließen, beenden) und über Shortcuts (Strg.-w ? usw.) gleichwertig sei, nicht aber das Schließen über das (sw.) Keuzchen in der roten Kreisfäche in der Menüeleiste. Da bin ich jetzt etwas verunsichert. Ist das evtl. Distributions- oder Anwendungsaabhängig? Vielen Dank im voraus für die Antworten und ggf. das schieben an den richtigen Platz.
|
|
glasenisback
Anmeldungsdatum: 20. November 2011
Beiträge: 1603
|
Das lässt sich pauschal nicht sagen. Wie sich der Close-Button gegenüber der Anwendung verhält, hängt nämlich davon ab, wie die Anwendung programmiert wurde. Nur ein kleines Beispiel aus einer eigenen Programmieraufgabe im Studium: | mainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
Obiger Code ist ein Stück Standardcode in einer Java-Swing-Anwendung. Mit dieser Anwendung legt man fest, dass bei einem Klick auf den Close-Button des Fenstermanagers das Java-Programm per "System.exit(0)" beendet wird. Das ist zwar keine saubere Lösung, reicht aber bei einfachen Programmen, die keine Dateien öffnen oder sonst irgendwie Dateien verarbeiten (z.B. eine einfache Taschenrechner-App). Bei "richtigen" Programmen, wird die Close-Operationen entsprechend abgefangen und das Programm dann in einer passenden Methode sauber beendet (Dateien werden geschlossen, usw.): | mainWindow.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
|
und 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 | // Stops a running chatServer and exits the GUI
exitButton.addActionListener(event -> {
try {
if (server != null) {
server.stopServer();
}
System.out.println("Exiting...");
System.exit(0);
}
catch (IllegalArgumentException e) {
JOptionPane.showMessageDialog(frame, "Server could not be stopped!","Inane error", JOptionPane.ERROR_MESSAGE);
} catch (InterruptedException e) {
e.printStackTrace();
}
});
// Listens for window closing event and simulates click on exitButton
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent winEvt) {
exitButton.doClick();
}
});
|
Bei einem Klick auf den Close-Button wird ein Klick auf den Exit-Button des Programms simuliert und die Server-Komponente in dem Programm sauber heruntergefahren. Erst danach wird es per "System.exit(0)" beendet (Wobei es hier auch bessere Möglichkeiten gibt). Andere Programme verfahren ähnlich. Aus dem Grund ist es nicht immer möglich Programme per Klick aud den Close-Button des Fensters zu beenden, weil eben das Programm hängt und keine Befehle empfangen kann. Dann dem Benutzer nichts anderes übrig als das Programm "killen".
|
|
ubun-tune-wbie
(Themenstarter)
Anmeldungsdatum: 9. Dezember 2014
Beiträge: 6
|
Hallo, gut und soweit klar. Aber bei den Standard- u. Mainstreamanwendungen (FF, LO, thunderbird, gedit,simplescan, Standardbildbetrachter, -dokumenterbetrachter, -dateimanager usw.) kann man doch wohl davon ausgehen, daß sie sauber programmiert sind, oder?
|
|
HarryD
Anmeldungsdatum: 14. Juni 2006
Beiträge: 2818
|
Am Besten du probierst es mit harmlosen Daten aus, ob sich die Programme, die du nutzt, auch so verhalten, wie du es erwartest. Nur dann kannst du vor Überraschungen sicher sein.
|
|
ubun-tune-wbie
(Themenstarter)
Anmeldungsdatum: 9. Dezember 2014
Beiträge: 6
|
Ja Danke,
das werde ich bei Gelegenheit mal machen. Ist nicht ganz so wichtig, weil ich überwiegend ohne Maus arbeite - da ich mit 10 Fingern tippe. Aber wenn ich sie doch mal in der Hand habe (bei den wenigen Fällen wo das praktischer ist), nutze ich sie meist noch ein paar Klicks weiter weiter. Ich werde den Klick auf das Kreuzchen im Zweifelsfalle unterlassen. Ggf. werde ich hier noch mal Rückmeldung geben. Wo genau gehört dieses Thema eigentlich hin, oder ist es hier richtig?
|
|
glasenisback
Anmeldungsdatum: 20. November 2011
Beiträge: 1603
|
ubun-tune-wbie schrieb: Ich habe immer mal wieder gehört [..]
Jetzt würde mich zum Schluss noch interessieren, wo du das gehört hast?
Ich werde den Klick auf das Kreuzchen im Zweifelsfalle unterlassen.
Das Kreuzchen wurde dafür erfunden, dass man eine Anwendung auch ohne den Umweg über das Menü beenden kann. Das merkt man alleine schon daran, dass dir Programme üblicherweise irgendeinen Dialog präsentieren, wenn du auf das Kreuzchen drückst.
|
|
ubun-tune-wbie
(Themenstarter)
Anmeldungsdatum: 9. Dezember 2014
Beiträge: 6
|
0. Das mit dem Zitieren finde ich gerade nicht, darum 1. + 2. 1. von anderen Linuxusern: " ... besser nicht über 'kreuzchen' beenden ... ... es droht ggf. Datenverlust ..." 2. Du sagtest ja selbst, probieren geht über studieren oh jetzt hab ich das mit dem Zitieren gefunden. Eigentlich ist Str+W, Strg+F4 und Alt+F4 ist ja auch kein Prob, wenn man seine Finger normalerweise eh an der Tastatur hat.
|
|
glasenisback
Anmeldungsdatum: 20. November 2011
Beiträge: 1603
|
ubun-tune-wbie schrieb: 0. Das mit dem Zitieren finde ich gerade nicht, darum 1. + 2.
Ein Zitat kannst du entweder über "Zitat einfügen" oben rechts des Threads einfügen oder per ">" am Anfang der Zeile.
1. von anderen Linuxusern: " ... besser nicht über 'kreuzchen' beenden ... ... es droht ggf. Datenverlust ..."
Dann haben diese Linuxuser keine Ahnung. Vor allem wegen deiner Aussage am Ende
Eigentlich ist Str+W, Strg+F4 und Alt+F4 ist ja auch kein Prob, wenn man seine Finger normalerweise eh an der Tastatur hat.
Alt+F4 wird nicht von der Anwendung abgefangen, sondern vom Fenstermanager. Das kannst du einfach testen, indem du per "gsettings" die Tastenkombination auf eine andere legst: Auslesen:
gsettings get org.gnome.desktop.wm.keybindings close Setzen:
gsettings set org.gnome.desktop.wm.keybindings close "['<Alt>F10']" Danach passiert beim Druck auf ALT+F4 nichts mehr und die Anwendung bleibt offen.
|
|
ubun-tune-wbie
(Themenstarter)
Anmeldungsdatum: 9. Dezember 2014
Beiträge: 6
|
|
|
thom_raindog
Anmeldungsdatum: 20. Mai 2005
Beiträge: 2848
|
Guter Punkt eigentlich. Wenn ALT+F4 vom Fenstermanager abgefangen wird, warum "stirbt" beispielsweise der Spotify-Client nicht, sondern lebt munter weiter? Das Fenter ist zu (und ich muss es per WINDOWS+M unter Gnome rauspulen) aber Musik läuft hübsch weiter...
|
|
glasenisback
Anmeldungsdatum: 20. November 2011
Beiträge: 1603
|
Dafür ist ja das obige Java-Beispiel gedacht. Der Fenstermanager reagiert zwar auf ALT+F4, aber diese Close-Operation wird an das Programm weitergeleitet, welches diese dann entsprechend behandelt. Spotify ist anscheinend so programmiert, dass es nur das Fenster schließt, die Anwendung aber weiterläuft. Das machen in der Regel alle Programme, die sich in die Tray-Leiste einnisten.
|