滚动问题(Java-JFrame-JScrollBar)

时间:2011-10-20 09:54:02

标签: java swing jscrollpane

INTRO: 我使用JFrame创建了一个java应用程序。我在顶部有一个JMenuBar,我希望显示一行文字。

目的: 当我有50行并且一次只能显示20行时,我希望能够向下滚动并再次备份。

问题: 当然,我的理论并不像它应该的那样工作。我的问题是我不知道如何正确添加垂直滚动。

问题: 我该如何更改此代码以达到我的目标?

public void display(){

    Container content = this.window.getContentPane();
    content.setLayout(new BorderLayout());
    Border border = LineBorder.createGrayLineBorder();

    //this is just a sample 
    for(int i = 0;i<50;i++){
        JLabel lab = new JLabel("lonyaladek");
        lab.setSize(570, 20);
        lab.setBorder(border);
        lab.setLocation(10, 20+(i*25));
        content.add(lab);
    }

    //scroll
    JScrollBar sb = new JScrollBar(JScrollBar.VERTICAL, 0, 0, 0, 0);
    content.add(sb);
}

1 个答案:

答案 0 :(得分:1)

首先,您需要从布局管理器开始,该管理器允许您向容器添加多个组件。也许GridLayout是最好的起点。

然后将此容器添加到scrollPane,然后将滚动窗格添加到窗口。

所以基本代码是:

JPanel panel = new JPanel( new GridLayout(0, 1) );
panel.add(...);
panel.add(...);
JScrollPane scrollPane = new JScrollPane( panel );
window.add(scrollPane, BorderLayout.CENTER);

我建议您阅读How to Use Scroll Panes上Swing教程中的部分以获取更多信息。