如何在JScrollPane对象中设置insets?

tom*_*her 4 java swing jtree jscrollpane insets

我有JScrollPane,它只包含一个JTree实例.如何在JScrollPane中设置JTree周围的边距?

我有这样的代码

tree.setPreferredSize(new Dimension(200, 200));
    JScrollPane scrollerTree = new JScrollPane(tree, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
    scrollerTree.setPreferredSize(new Dimension(200, 199));
    scrollerTree.getVerticalScrollBar().setUnitIncrement(16);
Run Code Online (Sandbox Code Playgroud)

我想实现,利用滚动窗格内容可以滚动边距.

dac*_*cwe 12

更新:从您更新的问题我认为您实际上是在 JComponent.setBorder,例如截图:

截图边框

码:

public static void main(String[] args) {

    JTree tree = new JTree();
    tree.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));

    JFrame frame = new JFrame("Test");
    frame.add(new JScrollPane(tree));
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.pack();
    frame.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)

原始答案,如果您想在视口附近有边框,请使用JScrollPane.setViewportBorder:

截图视口边框

码:

public static void main(String[] args) {

    JScrollPane scroll = new JScrollPane(new JTree());
    scroll.setViewportBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));

    JFrame frame = new JFrame("Test");
    frame.add(scroll);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.pack();
    frame.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)