JScrollPane
в JPanel
ниже расширяет, чтобы заполнить рамку. Как я могу остановить это расширение так, чтобы размер JScrollPane
был размером JButton
внутри него?Остановить расширение JScrollPane в пределах BoxLayout
public class GUITest extends JFrame {
public GUITest() {
setPreferredSize(new Dimension(700, 500));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
add(mainPanel);
JButton button1 = new JButton();
JButton button2 = new JButton();
JButton button3 = new JButton();
JScrollPane pane1 = new JScrollPane();
mainPanel.add(button1);
mainPanel.add(pane1);
pane1.setViewportView(button2);
mainPanel.add(button3);
//Display the window.
super.pack();
super.setLocationRelativeTo(null);
super.setVisible(true);
}
}
Я попытался
pane1.setMaximumSize(button2.getPreferredSize());
но появляются полосы прокрутки и я не могу видеть кнопку. Кроме того, в моей реальной программе компоненты в пределах JScrollPane
будут динамически добавляться во время выполнения, поэтому для этого вам понадобится JScrollPane
.
Я до сих пор не могу видеть кнопку и полосы прокрутки видны, когда они не должны быть. Кроме того, я буду добавлять компоненты в ScrollBar во время выполнения, так как я могу установить предпочтительный размер как общий размер всех компонентов? – mmgro27
Я исправил проблему с моей реальной программой сейчас, так что все хорошо. Спасибо за вашу помощь! – mmgro27
рад помочь! @notnek :) –