[英]JScrollPanel, horizontal and vertical scroll not working
我有下一個代碼:
public class MyScroll extends JFrame {
public MyScroll() {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
panel.setLayout(null);
for (int i = 0; i < 10; i++) {
JButton b = new JButton("Hello-" + i);
b.setBounds(0, i * 50, 100, 45);
panel.add(b);
b.setLayout(null);
}
JScrollPane scrollPane = new JScrollPane(panel);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
scrollPane.setBounds(50, 30, 100, 325);
JPanel contentPane = new JPanel(null);
contentPane.setPreferredSize(new Dimension(500, 400));
contentPane.setBackground(Color.BLUE);
contentPane.add(scrollPane);
contentPane.setLayout(null);
setContentPane(contentPane);
pack();
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setVisible(true);
}
}
並且,它呈現這個:
如您所見,垂直和水平滾動不起作用,但兩者都已定義並顯示在JPanel
。
誰能解釋一下我做錯了什么?
這段代碼基於以下內容: 滾動JPanel但是,目前還沒有使用verticall滾動
誰能解釋一下我做錯了什么?
panel.setLayout(null);
不要使用null布局。
僅當添加到滾動窗格的組件的首選大小大於滾動窗格的大小時,滾動條才會自動顯示。
布局管理器的工作是確定面板的首選大小。 由於您不使用布局管理器,因此不會計算首選大小。
所以解決方案是使用布局管理器 。 也許垂直BoxLayout
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.