2013-08-20 99 views
2

我有一個JScrollPane其中有一個JList裏面;JList setMimimumSize()在JScrollPane中

instructionsScrollPane = new JScrollPane(instructionList); 

JScrollPane的是本身在使用BorderLayout一個JPanel;

panel.add(instructionsScrollPane, BorderLayout.WEST); 

現在,我試圖阻止列表/滾動窗格會AA一定低於最小尺寸時,窗口大小,除了JScrollPane不能有最小尺寸集,該表是JScrollPane在其內部可以」沒有layoutManager。所以我無法設置JList的最小尺寸沒有layoutManager ...

現在,我想我可以有JScrollPane的/ JList中居中使用BorderLayout內的另一個JPanel(我會再設定的最小尺寸)在目前這個panel ......但這似乎很混亂。有誰知道更好的方式來調整ScrollPanes的大小嗎?

我知道可能有一種解決方案使用不同的layoutManager,但我已承諾在此時使用BorderLayout

+1

不承諾一個_specific_佈局管理器(至少不是像BorderLayout這樣一個可憐的野獸) - 瞭解每個提供什麼,並選擇一個最適合您的要求。 – kleopatra

回答

4

現在,我可以使用的BorderLayout內 另一個JPanel的(我會設定的最小尺寸)這個 當前面板內JScrollPane的中心......但似乎凌亂。有誰知道更好的 尺寸ScrollPanes的方法嗎?

爲JList的是很容易的,簡單的設置初始座標,爲LayoutManager的回報預期的尺寸,也有API實現了兩個方法

+0

使用setPrototypeCellValue比使用setFixedCellWidth有什麼優勢?我有點難以理解setPrototypeCellValue是如何工作的。 –

+0

setPrototypeCellValue(請參閱JList API的頂部)例如,現在我將僅討論String實例,但適用於所有數據類型,您可以計算最長的字符串長度(XxxwwwAAA111eee)之前,然後將此值作爲setPrototypeCellValue(「XxxwwwAAA111eee」) – mKorbel

+0

謝謝!看起來好像我將在最後使用'setFixedCellWidth()',因爲列表中的很多條目確實很長,我需要與其他組件非常精確地排隊。 –