簡體   English   中英

JScrollPanel,水平和垂直滾動不起作用

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

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