[英]Java - JScrollPane view layout with SpringLayout
我有一個JScrollPane
,它有一個使用SpringLayout
的視圖組件。
final JPanel panel = new JPanel(new SpringLayout());
// add stuff to panel here
final JScrollPane scrollPane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
getContentPane().add(scrollPane);
JScrollPane
似乎不起作用,任何幫助將不勝感激!
引用如何使用滾動窗格
除非您明確設置滾動窗格的首選大小,否則滾動窗格會根據其九個組件(視口,以及兩個滾動條(如果存在)、行和列標題以及四個角)的首選大小來計算它。 最大的因素,也是程序員最關心的一個因素,是用於顯示客戶端的視口的大小。
所以你必須在JScrollPane
實例上調用setPreferedSize(Dimension d)
final JPanel panel = new JPanel(new SpringLayout()); // add stuff to panel here final JScrollPane scrollPane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); scrollPane.setPreferredSize(new Dimension(300, 300)); add(scrollPane);
或覆蓋用作視口的JPanel
/ 組件的getPreferredSize()
final JPanel panel = new JPanel(new SpringLayout()) { @Override public Dimension getPreferredSize() { return new Dimension(300, 300); } }; // add stuff to panel here final JScrollPane scrollPane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); add(scrollPane);
其他注意事項:
不要不必要地擴展JFrame
類。
當調用被轉發到contentPane 時,只需在JFrame
實例上調用add(..)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.