SWT MessageBox mit benutzerdefinierten Schaltfläche Titel
Möchte ich hinzufügen, dass die benutzerdefinierte Schaltfläche Titel in meinem nicht-RCP, SWT, app.
MessageBox messageBox = new MessageBox(shell, SWT.ICON_WARNING | SWT.ABORT | SWT.RETRY | SWT.IGNORE);
messageBox.setText("Warning");
messageBox.setMessage("Save the changes before exiting?");
int buttonID = messageBox.open();
switch(buttonID) {
case SWT.YES:
//saves changes ...
case SWT.NO:
//exits here ...
break;
case SWT.CANCEL:
//does nothing ...
}
System.out.println(buttonID);
}
Es funktioniert gut, aber ich Taste Titel "Abbrechen", "Wiederholen", "ignorieren"
Ich möchte eine benutzerdefinierte Schaltfläche Titel, wie "überschreiben", "umbenennen", "Abbrechen".
Wie kann es getan werden?
Bitte helfen Sie.
*** BEARBEITEN ********
Ich habe auch versucht
MessageDialog dialog = new MessageDialog(null, "Dangerous Activity", null,
"Are you sure you want to delete?", MessageDialog.CONFIRM,
new String[]{"Preview>", "Delete", "Cancel"}, 0)
{
protected void buttonPressed(int buttonId) {
setReturnCode(buttonId);
//close(); Call close for Delete or Cancel?
}};
Aber MessageDialog erfordert app-RCP, damit auch nicht importieren des Pakets erforderlich. Hilfe.
- SWT+JFace NICHT erforderlich RCP [1]. In der Tat können wir verwenden SWT+JFace+Nebula [2], um einen kick-ass user experience. [1] wiki.eclipse.org/JFace#Using_JFace_outside_the_Eclipse_platform [2] eclipse.org/nebula
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein sehr einfaches Beispiel auf, wie Sie Ihre eigenen
Dialog
in SWT (es gibt mehrere komfortable Möglichkeiten, dies zu tun mit JFace obwohl):Sieht es wie folgt aus:
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell()
MessageBox
können nicht auf diese Weise erweitert werden. Die beste option - wenn nicht dabei eine RCP-Anwendung - wahrscheinlich ist es, roll your own dialog 🙂Aber angesichts der einfachen Natur dieser Dialoge, das sollte leicht genug sein.
Ich bin ein wenig spät, aber falls jemand auf der Suche für ein cutomizable MessageBox, hier ist es. Erstellen Sie eine Klasse, dann copy/paste den code in es. Ich danke Baz, dass Sie mir den Start-Punkt 🙂
}