kostenloser Webspace werbefrei: lima-city


JOptionPane

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    szmast3r

    szmast3r hat kostenlosen Webspace.

    Hallo,

    ich hab schon viel im Internet gelesen und alles, aber leider helfen mir diese nicht (vielleicht wegen der Verständlichkeit).

    Ich möchte in meinem Programm den Benutzer auffordern, per Button Klick 2 Auswahlmöglichkeiten zu geben (können auch RadioButtons sein dafür können die Buttons OK und CANCÈL sein). Danach sollen die Werte in eine ArrayList gepackt werden. Die weitere Verarbeitung ist schon implementiert.

    Es kann doch aber nicht so schwer sein ein JOptionPane zu machen ... Code Schnippsel zu Posten bringt wenig, da nichts geht, außer das anzeigen.

    Frage kurz und Knapp:

    Wie kann ich ein Optionpane erstellen (.showInputDialog) mit einem Text und 2 Buttons.
    Ich will die parentComponent setzen, einen Titel vergeben, einen Text rein knallen und 2 Buttons (ggf. auch ein Cancel Button) rein schmeißen, die ich selber benennen kann, oder auch umbenennen kann.


    Beitrag zuletzt geändert: 1.7.2014 8:35:08 von szmast3r
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Moin,

    Du müsstest logischerweise den Umweg über das Erstellen eigener Komponenten nehmen.

    Das funktioniert mit der folgenden Methode:

    JOptionPane.createDialog(parent, "Text")

    Hier ein Beispiel der Anwendung:
    http://www.java2s.com/Tutorial/Java/0240__Swing/Complexmessagearguments.htm

    Gruß,
    Pawnee

    Beitrag zuletzt geändert: 30.6.2014 12:37:36 von pawnee
  4. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Ich weiß zwar nicht ganz was du willst, aber nur OK/Cancel:
    int choice = JOptionPane.showConfirmDialog(null, "Push button",
    		"Input", JOptionPane.OK_CANCEL_OPTION);
    if(choice == JOptionPane.OK_OPTION) {
    	System.out.println("ok");
    } else if(choice == JOptionPane.CANCEL_OPTION) {
    	System.out.println("cancel");
    }

    Eine Auswahl zwischen mehreren Vorgaben (so klingt dein Wunsch):
    String[] values = { "One", "Two", "Three" };
    Object selected = JOptionPane.showInputDialog(null,
    		"Choose one", "Input",
    		JOptionPane.INFORMATION_MESSAGE,
    		null, values, values[0]);
    System.out.println("selected: '" + selected + "'");

    Und dann gäbe es noch die freie Wahl der Buttons:
    Object[] options = { "BLUE", "YELLOW" };
    int result = JOptionPane.showOptionDialog(null,
    		"Make a choice: blue or yellow?", "Make a choice",
    		JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE,
    		null, options, options[0]);
    System.out.println(options[result]);

    All das ist übrigens der Dokumentation der Klasse zu entnehmen.

    Wenn das alles nicht passt wirst du wohl pawnees Vorschlag folgen müssen, um einen ganz eigenen Dialog zu bauen…
  5. Autor dieses Themas

    szmast3r

    szmast3r hat kostenlosen Webspace.

    Danke für die schnellen Antworten! :)

    @hackyourlife :
    Danke!! Du hast mein Wunsch richtig verstanden! Leider hab ich am Anfang meiner Ausbildung nich so ganz aufgepasst und weiß wenig über Object (außer dass es die oberklasse von allen ist) und Component usw recht wenig. Daher kam ich damit kaum klar :/

    Verständnisfrage:

    Wenn beispielsweise .showConfirmDialog ein Object als Parameter haben will, kann ich da Strings oder andere Datentypen angeben? Rein Theoretisch müsste es ja meiner Meinung nach funktionieren da String irgendwo von Object erbt (Also hat String alle Sachen von Object + seine eigenen) also wird doch Object ausreichend mit Daten gefüttert, sodass es funktionieren müsste oder?

    Beitrag zuletzt geändert: 1.7.2014 8:35:31 von szmast3r
  6. hsg-elbmarsch

    hsg-elbmarsch hat kostenlosen Webspace.

    Ein bisschen spät, aber vielleicht hilft dir die Antwort ja immer noch ;)

    Ja, alle Klassen in Java erben von Object, d.h. du kannst im Prinzip alle Objekte als Parameter in showConfirmDialog o.ä. verwenden. Das ist jedoch nur in einigen Fällen sinnvoll. Hierzu aus der Dokumentation entnommen (docs.oracle.com/javase/7/docs/api/javax/swing/JOptionPane.html):

    Object message
        A descriptive message to be placed in the dialog box. In the most common usage, message is just a String or String constant. However, the type of this parameter is actually Object. Its interpretation depends on its type:
    
        Object[]
            An array of objects is interpreted as a series of messages (one per object) arranged in a vertical stack. The interpretation is recursive -- each object in the array is interpreted according to its type. 
        Component
            The Component is displayed in the dialog. 
        Icon
            The Icon is wrapped in a JLabel and displayed in the dialog. 
        others
            The object is converted to a String by calling its toString method. The result is wrapped in a JLabel and displayed.


    Viele Grüße!
  7. Autor dieses Themas

    szmast3r

    szmast3r hat kostenlosen Webspace.

    Dass es spät kommt ist nicht weiter schlimm :)

    Das Problem ist gelöst, aber zur Verständnis hilft es immer! Danke :)
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!