# JOptionPane.showInputDialog JList erzwingen?



## sirbender (6. Mrz 2009)

Hi,

Ich erzeuge einen Dialog via:

[HIGHLIGHT="Java"]JOptionPane.showInputDialog(null, "Select Column Type", "Add new Column", JOptionPane.QUESTION_MESSAGE, null, selectionValues, selectionValues[0]);[/HIGHLIGHT]
Wenn selectionValues ein sehr grosser Array ist, wird eine JList verwendet, ansonsten eine JCombobox um die Werte darzustellen.

Wie kann ich selbst bei wenigen Werten erreichen, dass immer eine JList verwendet wird?


Danke,
sb


----------



## Ebenius (6. Mrz 2009)

Das ist hardcoded im BasicOptionPaneUI: 
	
	
	
	





```
/* Create a user component to capture the input. If the
   selectionValues are non null the component and there
   are < 20 values it'll be a combobox, if non null and
   >= 20, it'll be a list, otherwise it'll be a textfield. */
```
Die JOptionPane ist ja nicht dafür da, irgendwelche Dialoge so darzustellen wie Du möchtest, sondern so, wie es das LookAndFeel bei 0815-Eingaben für sinnvoll hält.

Du kannst es so machen: [HIGHLIGHT="Java"]final JList list = new JList(new Object[] { "A", "B", "C" });
list.setSelectedIndex(0);
final JLabel label = new JLabel("Please select from the list below: ");

final JOptionPane optionPane =
      new JOptionPane(new Object[] { label, new JScrollPane(list) },
            JOptionPane.QUESTION_MESSAGE, JOptionPane.OK_CANCEL_OPTION) {

        @Override
        public void selectInitialValue() {
          super.selectInitialValue();
          list.requestFocus();
        }
      };
final JDialog dialog = optionPane.createDialog(null, "Input");
dialog.setVisible(true);
final int result = ((Integer) optionPane.getValue()).intValue();
System.out.println(JOptionPane.OK_OPTION == result ? "Selected: "
      + list.getSelectedValue() : "User canceled!");[/HIGHLIGHT]
Ebenius


----------



## sirbender (6. Mrz 2009)

Vielen Dank!


----------



## majdouline (20. Dez 2011)

Können Sie bitte mir helfen!!!!
bitte,bitte,meine aufgabe lautet:
Es sind zwei Zahlen mit Hilfe von JOptionPane.showInputDialog einzugeben und von diesen 
der größte gemeinsame Teiler und das kleinste gemeinsame Vielfache zu ermitteln und 
mittels JOptionPane.showMessageDialog auszugeben.
       Danke


----------



## Gast2 (20. Dez 2011)

Poste doch mal was du schon versucht hast  Wenn du Fehler bekommst dann poste die gleich mit  

Aufgaben lösen tuen wir hier nicht


----------

