tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
2924
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Goliath83 Goliath83 ist offline Mitglied
    Registriert seit
    Oct 2007
    Beiträge
    14
    Hallo, ich habe eine Frage zum MessageDialog in SWT.

    Der MessageDialog ist ja beim RCP recht gut vorbereitet, nur habe ich ein kleines Problem und weiß im Moment nicht wie ich das lösen könnte.

    Ich rufe den Standard-Dialog so auf:
    Code :
    1
    
    MessageDialog.openQuestion(parent, dialogTitle, dialogMessage);

    Mein Problem:
    Es sind zwei Buttons dabei ("Yes" und "No") und denen möchte ich gerne eine andere Beschriftung geben z.B. "Speichern" und "Abbrechen". Kann ich auf die Titel der Buttons irgendwie zugreifen oder muss ich mir meinen eigenen Dialog erstellen?


    Vielen Dank
    Geändert von Goliath83 (17.04.08 um 20:09 Uhr)
     

  2. #2
    andrejlr andrejlr ist offline Grünschnabel
    Registriert seit
    Apr 2008
    Beiträge
    2
    "Speichern " geht nicht, nur "Abbrechen" ist vordefiniert, falls du eine deutsch sprachiges OS benutztst. http://www.java2s.com/Code/Java/SWT-...sageDialog.htm

    Fals du wirklich auf deine eigenen bezeichener benutzen willst, Dann baue am besten eine eigen unterklasse von Dialog. etwa so (ist jetzt ein einfacher eingabe dialog)

    /*
    * Created on 26.05.2006
    */
    package guiPhoneBook;

    import java.util.HashMap;
    import java.util.Map;

    import org.eclipse.swt.widgets.Dialog;
    import org.eclipse.swt.widgets.Shell;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Label;
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.widgets.Text;
    import org.eclipse.swt.widgets.Button;

    public class InputDialog /*extends Dialog*/ {
    String result;

    private Shell sShell = null; // @jve:decl-index=0:visual-constraint="122,39"
    private Label label = null;
    private Button button = null;
    private Button button1 = null;
    private Text text = null;

    /**
    * This method initializes sShell
    */
    private void createSShell() {
    sShell = new Shell(SWT.BORDER | SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
    sShell.setText("InputDialog");
    sShell.setMaximized(false);
    sShell.setMinimized(false);
    sShell.setSize(new org.eclipse.swt.graphics.Point(300,144));
    label = new Label(sShell, SWT.NONE);
    label.setBounds(new org.eclipse.swt.graphics.Rectangle(12,13,111,22));
    label.setText("Eingabe");
    button = new Button(sShell, SWT.NONE);
    button.setBounds(new org.eclipse.swt.graphics.Rectangle(12,80,80,23));
    button.setText("OK");
    button.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
    public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
    // System.out.println("widgetSelected()"); // TODO Auto-generated Event stub widgetSelected()
    result = text.getText();
    sShell.close();
    }
    });
    button1 = new Button(sShell, SWT.NONE);
    button1.setBounds(new org.eclipse.swt.graphics.Rectangle(200,80,82,23));
    button1.setText("close");
    button1.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
    public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
    // System.out.println("widgetSelected()"); // TODO Auto-generated Event stub widgetSelected()
    sShell.close();
    }
    });
    text = new Text(sShell, SWT.BORDER);
    text.setBounds(new org.eclipse.swt.graphics.Rectangle(12,45,270,25));
    }



    public String open() {
    createSShell();
    sShell.open();
    Display display = Display.getDefault();
    while (!sShell.isDisposed()) {
    if (!display.readAndDispatch()) display.sleep();
    }
    return result;
    }
    public String open(String initial) {
    createSShell();
    sShell.open();
    Display display = Display.getDefault();

    text.setText(initial); // *** myself

    while (!sShell.isDisposed()) {
    if (!display.readAndDispatch()) display.sleep();
    }
    return result;
    }


    Die

    }
     

  3. #3
    amjad2777 amjad2777 ist offline Grünschnabel
    Registriert seit
    Feb 2009
    Beiträge
    2
    Ganz einfach : Du kannst eigenen Dialog bauen:

    public boolean openGermanQuestionDialog(Shell parentShell, String title, String message) {
    return new MessageDialog(parentShell, title, null, message, 3, new String[] {
    "Speichern", "Abbrechen" }, 0).open() == 0;
    }
     

  4. #4
    Lord_Aratorn Lord_Aratorn ist offline Mitglied
    Registriert seit
    Jun 2008
    Beiträge
    20
    Das Thema ist zwar schon etwas älter aber ich habe dazu auch eine Frage. Wie können die entsprechenden Listener des MessageDialog implementiert werden?
     

  5. #5
    amjad2777 amjad2777 ist offline Grünschnabel
    Registriert seit
    Feb 2009
    Beiträge
    2
    Hallo Lord_Aratorn,
    hier ist ein Beispiel, um zu wissen welechen Button geklickt wurde, dann kannst du abhängig davon alles machen:

    MessageDialog messageDialog = new MessageDialog(parentShell, "MessageDialog", null,
    "Message", MessageDialog.ERROR,
    new String[] { "Speichern", "Abbrechen" }, 1);
    if (messageDialog.open() == 0) {
    //Do some thing
    System.out.println("Speichern Button wurde geklickt.");
    }else if (messageDialog.open() == 1) {
    //Do some thing
    System.out.println("Abbrechen Button wurde geklickt.");
    }
    Geändert von amjad2777 (04.07.11 um 23:11 Uhr)
     

  6. #6
    SE Tutorials.de Gastzugang
    Freunde ... habt ihr schonmal was von CODE-Tags gehört ?
    Und ganz speziell für Java gilt : [java]CODE[/java]

    Das sieht so einfach nicht schön aus und viele von uns *mich eingeschlossen* weigern sich einfach sowas auch nur anzusehen ...
     

  7. #7
    Lord_Aratorn Lord_Aratorn ist offline Mitglied
    Registriert seit
    Jun 2008
    Beiträge
    20
    Oh vielen dank für die Hilfe!
     

Ähnliche Themen

  1. MessageDialog mit Link
    Von naeko im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 27.10.09, 21:39
  2. Messagetext in Messagedialog zentrieren?
    Von schuetzejanett im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 0
    Letzter Beitrag: 12.09.07, 11:16
  3. PHP modifizieren
    Von iframe im Forum Stellenangebote (unentgeltlich)
    Antworten: 1
    Letzter Beitrag: 08.04.07, 14:33
  4. Netzteil Modifizieren !?
    Von ZweiA im Forum Elektrotechnik
    Antworten: 10
    Letzter Beitrag: 16.05.05, 23:41
  5. modifizieren
    Von camouflage im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 17.12.01, 23:15