3

だから、どうにかして JOptionPane のサイズを設定したいのですが、設定しないと、私の目的には大きすぎて見栄えがしません。ここに私のコードがあります:

   JScrollPane scrollpane = new JScrollPane(); 
   String categories[] = { "1. Problem One Problem One Problem One Problem One Problem One Problem One Problem One Problem One Problem One", "2. Problem Two", "3. Extended Family", "4. Extended Family", "5. Extended Family"};
   JList list = new JList(categories);
   errorListCellRenderer cellRenderer = new errorListCellRenderer();
   list.setCellRenderer(cellRenderer);
   scrollpane = new JScrollPane(list);
   JPanel panel = new JPanel(); 
   panel.add(scrollpane);
   JOptionPane.showMessageDialog(null, panel, "Error List",  
                                          JOptionPane.PLAIN_MESSAGE);

JPanelのサイズを次のように設定すると:

panel.setPreferredSize(new Dimension(500, 200));

スクロール バーが表示されなくなり、すべてが表示されるわけではありません。

何か案は?Java n00b...

4

3 に答える 3

15

JOptionPane ウィンドウのサイズを変更したいだけの場合は、UIManager を使用して行うことができます。このような:

UIManager.put("OptionPane.minimumSize",new Dimension(500,500)); 
JOptionPane.showMessageDialog(null, "Hi " );
于 2014-10-09T21:29:15.307 に答える
6

スクロールペインにpreferredSizeを指定してから、直接optionPaneに追加します

String categories[] = { "1. Problem One Problem One Problem One Problem One Problem One Problem One Problem One Problem One Problem One",
                       "2. Problem Two", "3. Extended Family", "4. Extended Family", "5. Extended Family"};
JList list = new JList(categories);
JScrollPane scrollpane = new JScrollPane(list);
scrollpane.setPreferredSize(new Dimension(300,125));//<-----any size you want
JOptionPane.showMessageDialog(null, scrollpane, "Error List",JOptionPane.PLAIN_MESSAGE);
于 2013-01-13T05:10:03.953 に答える
5

次の変更を行って確認してください。

  1. JScrollPane を別の Panel 内に置かないでください。JScrollPane を showMessageDialog() 内で直接渡します。

  2. scrollPane.getViewport().add(list); も使用してください。

編集:次のことを試したところ、アイテムが増えるとスクロールバーが表示されます。

 JScrollPane scrollpane = new JScrollPane(); 
       String categories[] = { "1. Problem One Problem One Problem One Problem One Problem One Problem One Problem One Problem One Problem One", "2. Problem Two", "3. Extended Family", "4. Extended Family", "5. Extended Family"
               ,"6. Extended Family","7. Extended Family","8. Extended Family","9. Extended Family"};
       JList list = new JList(categories);

       scrollpane = new JScrollPane(list);

       JPanel panel = new JPanel(); 
       panel.add(scrollpane);

       scrollpane.getViewport().add(list);
       JOptionPane.showMessageDialog(null, scrollpane, "Error List",  
                                              JOptionPane.PLAIN_MESSAGE);

スクリーンショットが添付されています。

ここに画像の説明を入力

于 2013-01-13T01:34:05.477 に答える