Как добавить полосу прокрутки на панель в Java, без Borderlayout? - PullRequest
2 голосов
/ 11 марта 2011

Вот мой код:

//this is a JPanel, the gray panel behind the A4 paper
public Panel(int w, int h) {  //w=624, h=600
    this.w = w;
    this.h = h;
    ownlayout();
    setLocation(0, 0);
    setSize(w,h);
    setBackground(Color.gray);

    JScrollBar vbar = new JScrollBar(JScrollBar.VERTICAL);
    vbar.setLocation(w-30,0);
    Tab tab = new Tab(w-30,842);
    //Tab is a JPanel too, this is the A4 paper
    add(tab);
    add(vbar);
}
private void ownlayout() {
    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
    this.setLayout(layout);
    /*layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, w, Short.MAX_VALUE)
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, h, Short.MAX_VALUE)
    );*/
}

Как видите, высота панели вкладок больше, чем высота серой панели. Поэтому я хочу получить полосу прокрутки в правой части серой панели, которая может прокручивать панель вкладок (которая находится на серой панели) вверх и вниз. Но он показывает только панель вкладок, а полоса прокрутки отсутствует! Я могу сделать это, если я установлю границу макета, а не ownlayout (), но мне нужен бесплатный дизайн, а не borderlayout. Пожалуйста, помогите мне с некоторым примером!

1 Ответ

6 голосов
/ 11 марта 2011
JScrollPane thePane = new JScrollPane(yourBigComponent);
container.add(thePane);
...