У меня есть окно JFrame-потомка a с JMenuBar и два компонента, хранящиеся в JPanel. Один из них - JTabbedPane, который занимает большую часть экрана, а другой - маленький JPanel, который, в свою очередь, содержит ряд кнопок. Они построены как таковой:BorderLayout.NORTH ведет себя неспешно
//in constructor:
menubar = new BFIDEMenuBar(this);
setJMenuBar(menubar);
content = new JPanel();
add(content);
buttons = new BFIDEButtonBar();
editors = new JTabbedPane();
content.add(buttons, BorderLayout.NORTH);
content.add(editors, BorderLayout.CENTER);
Когда окно меньше определенного размера, компоненты, расположенные, как и ожидалось: JTabbedPane занимающий центр с «кнопок» JPanel центрированных над ним:
Однако, если окно повторно размер выше определенного порогового значения, то JPanel меняется расположение:
Уменьшая окно заставляет его прыгать вернуться к предыдущей (правильной) позиции.
Я прочитал javadoc for BorderLayout, и я использовал его раньше, но мне еще предстоит столкнуться с этим явлением. В javadoc говорится, что «компоненты NORTH и SOUTH могут растягиваться горизонтально»; но я не думаю, что это растяжение.
Никаких других методов не вызывается из конструктора, кроме добавления нескольких слушателей и обязательных setVisible
, setEnabled
и т.п.
Любые мысли о том, почему это происходит или как его исправить?
попробовать 'Content = новый JPanel (новый BorderLayout());' 'вместо контента = новые JPanel();' –
@GnomezGrave MadProgrammer бить вас к нему , Спасибо хоть. – ApproachingDarknessFish
Во всяком случае, вы получили правильный ответ. (У) –