Как установить вставки внутри объекта JScrollPane?
У меня есть JScrollPane, который содержит только один экземпляр JTree. Как я могу установить поле вокруг JTree внутри JScrollPane?
У меня такой код
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);
Я хочу добиться, чтобы это поле можно было прокручивать с помощью содержимого полосы прокрутки.
1 ответ
Решение
Обновление: из вашего обновленного вопроса я считаю, что вы на самом деле после 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);
}
Оригинальный ответ, если вы хотите, чтобы границы вокруг порта просмотра, используйте 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);
}