簡體   English   中英

Java - 帶有 SpringLayout 的 JScrollPane 視圖布局

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM