Как добавить пространство в JPanel, чтобы JScrollPane не располагался поверх моих компонентов?
У меня есть JScrollPane, и когда я загружаю свое приложение, панель располагается поверх одной из моих кнопок. То, что я хотел бы сделать, это добавить некоторое пространство сбоку от моей кнопки, чтобы полоса прокрутки рисовала поверх пространства, а не моей кнопки.
Пример кода, который я пробовал:
JPanel eButton = new JPanel(new BorderLayout());
JPanel spaceFiller = new JPanel();
spaceFiller.setSize(30, 10);
eButton.add(editButton, BorderLayout.EAST);
eButton.add(spaceFiller, BorderLayout.WEST);
Проблема с этим кодом в том, что он все еще перезаписывает мою кнопку, и пробел не добавляется. Каков наилучший способ убедиться, что JScrollPane не перекрывает компоненты в моем JFrame?
Спасибо
2 ответа
Чтобы гарантировать, что размер JPanel соблюдается, вы должны использовать setPreferredSize() вместо setSize().
В вашем примере кода разве вы не поменяли местами восток и запад? Разве это не должно быть похоже на:
eButton.add(editButton, BorderLayout.WEST);
eButton.add(spaceFiller, BorderLayout.EAST);
Это будет иметь больше смысла, так как полоса прокрутки появится на правой стороне (EAST).
Обратите внимание, что предлагаемое вами решение, даже если оно может работать (после обмена EAST и WEST), больше похоже на взлом, чем на реальное решение.