# JOptionPane setSize ?



## ABstraCT (22. Jun 2009)

Hi,

kann man irgendwie die Größe des JOptionPanes festlegen?
Möchte nen kleinen Dialog haben wo man ne Liste mit 10 Einträgen hat die man eben auswählen kann, leider macht der untere code nicht immer ne Liste draus sondern manchmal ne ComboBox.
(Bei mehr Einträgen wirds meist als Liste dargestellt ?!))


```
Object[] last10 = { "1","2", "3", "4", "5", "6", "7","8", "9", "10" };
JOptionPane.showInputDialog(null, "Please choose a connection", "Last connections", JOptionPane.QUESTION_MESSAGE, null, last10, last10[0]);
```


jemand ne idee ?

THANX
CU


----------



## DoxyMoxy (22. Jun 2009)

hi...

was willst du denn genau Listen?
weil soweit ich weiß ist bei JOptionPane... (die Dialogboxen) die größe schon fest gelegt...

aber du kannst mal sowas probieren...

also ist nur ein Beispiel:

Aus ein Taschenrechner aus ein alten von mir 


```
JOptionPane.showInputDialog(null,"Wählen Sie Ein Operationszeichen \n\t +   = Addition \n\t -    = Subtraktion\n\t *    = Multiplikation \n\t /     = Division\n\t %   = Prozent\n\t ²     = Quadrat\n\t K    = Kehrwert \n\t W   = Wurzel \n\t 3    = die 3. Wurzel \n\t X    = x hoch y \n\t B    = Binär Umrechnung \n\t H    = Hexa Umrechnung\t\n D    = Binär 2 Dezimal\n\t A    = Abbruch");
```

Die Operationszeichen den werden dann ein bestimmter "Char" zugewiesen und dann mit einer Switsch/Case anweisung abgerufen...

die \n\t sind dann eben zeilenumbrüche musste mal testen...kann dir aber nicht sagen ob es das ist was du wolltest...


----------



## ABstraCT (22. Jun 2009)

naja ich will einfach ne liste links haben und keine combobox, komischerweise macht er bei mehreren einträgen ne liste und bei ca. 10 ne combobox draus.

kann man das irgendwie beeinflussen ?

CU


----------



## sayang (22. Jun 2009)

Scheint mir, als müsstest du deinen Dialog selbst erzeugen - also von JDialog ableiten -, wenn du in jedem Fall eine Liste haben möchtest.
Alternativ kannst du m.E. auch für den Parameter message (Object) der showXYZDialog-Methoden von JOptionPane auch ein vorgefertigtes JPanel übergeben.

Lg
sayang


----------



## André Uhres (23. Jun 2009)

Ein Beispiel:

```
final static String ADD = "Addition";
final static String SUB = "Subtraktion";
final static String MUL = "Multiplikation";
final static String DIV = "Division";
final static String PRO = "Prozent";
final static String QUA = "Multiplikation";
final static String KEH = "Kehrwert";
final static String WUR = "Wurzel";
final static String WUR3 = "die 3. Wurzel";
final static String HOCH = "x hoch";
final static String BIN = "Binär Umrechnung";
final static String HEX = "Hexa Umrechnung";
final static String DEZ = "Binär 2 Dezimal";
...
    String[] listData = new String[]{
        ADD, SUB, MUL, DIV, PRO, QUA, KEH, WUR, WUR3, HOCH, BIN, HEX, DEZ};
    JList options = new JList(listData);
    options.setSelectedValue(ADD, true);
    int value = JOptionPane.showConfirmDialog(null, options,
            "Wählen Sie Ein Operationszeichen",
            JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
    if (value == JOptionPane.OK_OPTION) {
        System.out.println(options.getSelectedValue());
    }
```


----------



## sayang (23. Jun 2009)

Ach klar... ich Depp... 
Statt eines JPanels kannst du natürlich auch gleich eine JList als "message" mitgeben.
Danke an André für den Klaps auf meinen Hinterkopf 

Lg
sayang


----------



## ABstraCT (23. Jun 2009)

Danke an Andre, das klappt wunderbar.

Gibt es eigentlich auch die Möglichkeit den OK button umzubennen ?

Ich hatte ursprünglich den dialog selber gebastelt, aber dann gesehen dass es ja auch mit 3 zeilen mit der optionpane geht.


Gibt es eigentlich auch ne logische erklärung dafür, dass es einmal ne combobox und dann ne list wird ?
ich brauche dann noch ne liste mit 256 einträgen und die wird mit meinem code schön als scrollbare liste dargestellt doch bei weniger als ca. 15 wirds ne combobox ?!

THANX
CU


----------

