У меня есть JFrame, который устанавливает область содержимого в JPanel, у которого есть BoxLayout и еще два JPanels, один из них - «верхняя панель», а другой - это контент, с которым я хочу работать. Верхняя панель должна занимать именно тот размер, который я им даю, и панель содержимого должна занимать все остальное, но вместо этого они занимают половину пространства. Что я делаю не так?Изменить размер JPanel в пределах BoxLayout
Мои классы:
public class TopBar extends JPanel
{
public TopBar()
{
setLayout(new FlowLayout());
setPreferredSize(new Dimension((int) (MyFrame.WIDTH/MyFrame.COMPRESSION), MyFrame.TOPBAR));
add(new JButton("something"));
}
}
public class ContentPanel extends JPanel
{
public ContentPanel()
{
setLayout(null);
}
}
public class MyJpanel extends JPanel
{
private JPanel topPanel;
private JPanel contentPanel;
public MyJpanel()
{
this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
topPanel = new TopBar();
contentPanel = new ContentPanel();
add(topPanel);
add(contentPanel);
}
}
Для вашего верхнего бара я думаю, что 'JToolBar' использует' BoxLayout' внутри. –
1) Чтобы лучше помочь, опубликуйте [MCVE] или [Short, Self Contained, Correct Example] (http://www.sscce.org/). 2) Обеспечить ASCII-искусство или простой рисунок * предназначенного макета GUI при минимальном размере и, если он изменен, с большей шириной и высотой. –