将JScrollPane添加到JFrame / JPanel

时间:2015-04-30 15:07:17

标签: java swing jscrollpane

我查看了许多问题和网站,但我找不到答案。 我有一个JPanel。我想添加一个滚动条,所以我想我会使用Jscrollpane。

public class TheFrame extends JFrame {

public ThePanel canvas;


public TheFrame() {

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


    setLayout(new BorderLayout());


   //-------------------------------------

    JScrollPane scroll = new JScrollPane(canvas);
    scroll.setViewportBorder(new LineBorder(Color.RED));
    scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    add(scroll, BorderLayout.SOUTH);

   //-------------------------------------------------


    canvas = new ThePanel();

    setSize(700, 400);

    this.add(canvas, BorderLayout.CENTER);

    setVisible(true); 
}

目前,滚动条只显示在底部。边界显示它只是底部的一个小区域。我试图将Jpanel放入Jscrollpane。所以边界是整个应用领域。 ThePanel扩展了JPanel。感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

添加画布以滚动,并将滚动添加到this。 JScrollPane包装组件,它不会神奇地将自己添加到组件中。

示例:

JFrame frame = new JFrame();
JPanel pane = new JPanel();
JScrollPane scroller = new JScrollPane(pane);
frame.add(BorderLayout.CENTER, scroller);
scroller.setWheelScrollingEnabled(true);
scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
frame.setVisible(true);