当Layout为null时,ScrollBar不起作用

时间:2014-08-13 15:30:53

标签: java swing scroll scrollbar jscrollpane

当布局设置为null时,不会显示滚动条。如何获得面板内的滚动条?有没有其他方法来实现它。我想在scrollPane

中获取滚动条
import java.awt.Dimension;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

public class ScrollBarExample {

    public static void main(String... args) {
        JFrame frame = new JFrame();
        JPanel panel = new JPanel();
        panel.setLayout(null);
        for (int i = 0; i < 10; i++) {
            JButton jbutton = new JButton("Hello-" + i);
            jbutton.setBounds(i * 100, i*30, 100, 40);
            panel.add(jbutton);
        }
        JScrollPane scrollPane = new JScrollPane(panel);
        scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
        scrollPane.setBounds(50, 10, 320, 100);
        JPanel contentPane = new JPanel(null);
        contentPane.setPreferredSize(new Dimension(500, 400));
        contentPane.add(scrollPane);
        frame.setContentPane(contentPane);
        frame.pack();
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.setVisible(true);
    }
}

1 个答案:

答案 0 :(得分:2)

如果没有Layout-Manager,您需要手动设置Panel的Preferred-Size

panel.setPreferredSize(new Dimension(500, 500));

例如