FireGlow: JOptionPane

Moin!

Gibt es ne Möglichkeit ein Dialogfenster (JOptionPane) mit mehreren "Select-Feldern" zu machen?

Gruß

FireGlow

  1. Hallo FireGlow,

    Gibt es ne Möglichkeit ein Dialogfenster (JOptionPane) mit mehreren "Select-Feldern" zu machen?

    Aber natürlich:

    public static int [link:http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JOptionPane.html#showOptionDialog(java.awt.Component,%20java.lang.Object,%20java.lang.String,%20int,%20int,%20javax.swing.Icon,%20java.lang.Object%5B%5D,%20java.lang.Object)@title=showOptionDialog](  
        Component parentComponent,  
        Object message,  
        String title,  
        int optionType,  
        int messageType,  
        Icon icon,  
        Object[] options,  
        Object initialValue  
    ) throws HeadlessException
    

    Der Aufruf erfolgt etwa wie folgt:

      
    // Panel, das beliebige Inhalte haben kann  
    JPanel panel = new JPanel();  
      
    // z. B. zwei Textfelder (oder select-Felder, oder...)  
    JTextField t1 = new JTextField();  
    JTextField t2 = new JTextField();  
      
    // das Panel kann natürlich auch ein eigenes Layout haben,  
    // hier kümmern wir uns aber nicht darum  
    panel.add(t1);  
    panel.add(t2);  
      
    // Titel des Dialogs  
    String title = "Ein echt toller Optionsdialog!";  
      
    // optionType und messageType siehe Java Doku - hier brauchen wir sie nicht,  
    // da wir weder vordefinierte Buttons noch ein tolles Icon haben wollen  
    //  
    // ich glaube, ich habe diese Parameter immer auf 0 gestellt - ansonsten wäre  
    // -1 noch möglich  
    int optionType = 0;  
    int messageType = 0;  
      
    // wir brauchen auch kein Icon  
    Icon icon = null;  
      
    // die Optionen  
    String[] options = new String[] { "Ja", "Nein", "Vielleicht" };  
      
    // normalerweise ausgewählt: "Ja"  
    int initialValue = 0;  
      
    // Aufruf des Optionsdialogs - in "result" wird das Resultat gespeichert,  
    // also der Wert, den der Benutzer ausgewählt hat - oder -1 für einen Abbruch  
    int result = JOptionPane.showOptionDialog(  
        null,  
        panel,  
        title,  
        optionType,  
        messageType,  
        null,            /* wir brauchen kein Icon */  
        options,  
        initialValue  
    );  
      
    // hier können nun die Ergebnisse verarbeitet werden  
    if (result == 0) {  
        System.out.println(t1.getText());  
        System.out.println(t2.getText());  
    } else {  
        System.out.println(result);  
    }
    

    Habe den Code nicht getestet, aber so ähnlich müsste es auf jeden Fall gehen. :-)

    Grüße

    Marc Reichelt || http://www.marcreichelt.de/

    --
    Linux is like a wigwam - no windows, no gates and an Apache inside!
    Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)