Deaktivieren Sie die Schaltfläche schließen in java JFace-dialog?
Wie kann ich deaktivieren Sie die Schaltfläche schließen (oder verschwinden vollständig, wenn möglich) in eine java JFace-dialog?
InformationsquelleAutor PlagueHammer | 2010-11-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehen hier für ein Beispiel zeigt, wie verstecken die Schaltfläche zum schließen eines
Dialog
. Sie einfach überschreiben folgende Methode:Sonst überschreiben
close()
und false zurückgeben, um das schließen zu verhindern.Update: Während der obige code "löst" das problem bei der hand, er erklärt nicht viel, und führt eine fiesen bug. Bitte sehen Goog ' s Antwort, für eine Art bessere version.
+1 für das überschreiben
close()
Methodedanke..
InformationsquelleAutor the.duckman
Schaltflächen in einem Dialog erstellt werden, mit der Methode createButton(). Auf "filter" die Schaltfläche Abbrechen können Sie überschreiben, können Sie es wie folgt:
Jedoch das Dialogfeld schließen-Schaltfläche (durch das OS) noch funktioniert. Um es zu deaktivieren, können Sie überschreiben canHandleShellCloseEvent():
Hier ist ein vollständiges minimal-Beispiel:
InformationsquelleAutor jastram
Machen die X-Taste nicht sichtbar ist, auf einen Dialog haben Sie zum ausschalten der SWT.SCHLIEßEN Sie den Stil-Eigenschaft. Wichtig zu beachten, dass dies getan werden muss, bevor der dialog geöffnet wird, also in den Konstruktor des dialog funktionieren würde.
Den Standard-shell-Stil auf einem JFace Fenster
SWT.SHELL_TRIM
die gleichSWT.CLOSE | SWT.TITLE | SWT.MIN | SWT.MAX | SWT.RESIZE
InformationsquelleAutor Greg Leaver
Für einen dialog erweitert, von
org.eclipse.jface.dialogs.Dialog
, overrdingcanHandleShellCloseEvent
funktionierte nicht für mich,Schließen Sie die gesamte Anwendung arbeitete als eine gute Strategie für meine situation, denn ich musste das gleiche tun, wenn die Benutzer wählen, um abzubrechen.
Ich weiß, das ist nicht die genaue Antwort auf die Frage, aber können verwendet werden als eine Problemumgehung, mit der situation umzugehen.
unter
open()
odercreateContents()
Methode,InformationsquelleAutor Sudhish Ullattil