Как добавить пространство в JPanel, чтобы JScrollPane не располагался поверх моих компонентов? - PullRequest
0 голосов
/ 19 мая 2011

У меня есть 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 ]

2 голосов
/ 19 мая 2011

Чтобы обеспечить соблюдение размера JPanel, вы должны использовать setPreferredSize () вместо setSize ().

1 голос
/ 19 мая 2011

В вашем примере кода разве вы не изменили EAST и WEST? Разве это не должно быть похоже на

eButton.add(editButton, BorderLayout.WEST); 
eButton.add(spaceFiller, BorderLayout.EAST); 

Это имеет больше смысла, так как полоса прокрутки появится справа (EAST).

Обратите внимание, что предлагаемое вами решение, даже если оно может работать (после обмена EAST и WEST), больше похоже на взлом, чем на реальное решение.

...