Проблема с прокруткой (Java-JFrame-JScrollBar) - PullRequest
0 голосов
/ 20 октября 2011

INTRO: я создал приложение Java, используя JFrame.У меня есть 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 Ответ

1 голос
/ 20 октября 2011

Сначала вам нужно начать с менеджера компоновки, который позволяет добавлять несколько компонентов в контейнер.Возможно, GridLayout - лучшее место для начала.

Затем вы добавляете этот контейнер в scrollPane и затем добавляете scrollpane в окно.

Таким образом, основной код будет:

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

Я предлагаю вам прочитать раздел из учебника по Swing на Как использовать панели прокрутки для получения дополнительной информации.

...