2013-01-13 36 views
2

所以我想以某種方式設置我的JOptionPane的大小 - 沒有設置它,它對於我的目的來說太大了,並且看起來不太好。這裏是我的代碼:設置JPanel或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

請進行以下更改並查看;

  1. 請勿將JScrollPane放入另一個面板中。直接在showMessageDialog()中傳遞JScrollPane。

  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); 

截圖附上;

enter image description here

+0

一禁止把它到面板上並沒有改變大小或者修復它....我最初有這樣說,但後來我意識到,我知道如何改變的大小面板和改變面板大小將有所幫助。但是,它引入了另一個問題。 2.我可以做這個改變,但它不會解決問題。 – BigBug

+0

使用滾動窗格的要點是將元素放到它上面,從而讓它決定是否在尺寸增加時顯示滾動條。所以沒有必要在另一個面板中包裝一個滾動窗格。你可以做的是把列表放在面板中,並將該面板放在滾動窗格中。 – dinukadev

+0

我已經做出了您現在建議的更改。但是,滾動條仍然不出現。相反,整個盒子變得越來越大,因爲我添加了越來越多的條目 - 這是不期望的,因爲它會變得太大。爲了保持滾動條並且不使盒子變得如此之大,我需要更改哪些內容?感謝您的幫助btw – BigBug

4

給滾動窗格一個首選大小,然後直接將其添加到選項窗格

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); 
5

如果你只是想改變的JOptionPane窗口的大小,你可以通過使用UIManager的做到這一點。就像這樣:

UIManager.put("OptionPane.minimumSize",new Dimension(500,500)); 
JOptionPane.showMessageDialog(null, "Hi ");