使Jpanel可滚动

时间:2014-11-27 16:10:44

标签: java swing jpanel jscrollpane

我的代码存在问题......

我做到了,一切正常......但是我的内容很快就超出了界限,所以我需要让它可以滚动..这就是当一切都变得地狱......

我的代码=

public Main() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 1000, 1200);


    JFrame frame = new JFrame();
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    setContentPane(contentPane);
    contentPane.setLayout(null);


    JScrollPane scroll = new JScrollPane(contentPane);
    Dimension d = new Dimension(1000,800);
    scroll.setPreferredSize(d);
    frame.add(scroll);
    Arrays.sort(genres);
    System.out.println("test1");
    createGui();

    frame.pack();
    frame.setVisible(true);

}

非常感谢任何帮助:/我尝试了大量的解决方案,但滚动条没有显示或没有显示..

1 个答案:

答案 0 :(得分:1)

contentPane.setLayout(null);

不要使用空布局。

布局管理器有很多功能。一种是设置添加到面板的组件的大小/位置。另一种是确定面板的首选尺寸。当面板的首选大小大于滚动窗格的大小时,滚动条将自动出现。当您使用null布局时,首选大小为(0,0),因此没有理由显示滚动条。

阅读Layout Managers上Swing教程中的部分,了解有关使用布局管理器的更多信息和示例。

如果您在面板上进行自定义绘画,则可以覆盖自定义面板的getPreferredSize()方法,以使滚动条正常工作。