Я создал n JPanels, и в каждом JPanel я добавил 3 компонента. Добавьте эти JPanels в новый JPanel в виде строк. макет для n JPanels - FlowLayout, а для основной панели - BorderLayout. Метод setPrefferedSize() отлично работает для компонентов, которые я добавил в n JPanels, но он не работает для n JPanels. Я пытаюсь использовать npanels [i] .setPrefferedSize (новое измерение (300,25)) Я хочу, чтобы высота JPanel была равна высоте добавленных в нее компонентов (что равно 25). Есть ли какое-либо ограничение, что высота JPanel должна быть минимальным значением? пожалуйста, помогите я попробовал много вещей, но не работает .....Почему метод setPrefferedSize() не работает для JPanel?
ответ
Некоторые менеджеры компоновки, как правило, игнорируют настройку размера ...
Читал где-то, что может BorderLayout склонны игнорировать width
для NORTH
и SOUTH
компоненты, height
для EAST
и WEST
, как height
и width
игнорируются CENTER
...
Может ли это быть так?
Кроме того, вы можете предоставить скриншот или диаграмму, объясняющую, что происходит?
setPrefferedSize() метод работает нормально для компонентов
Там обычно нет необходимости устанавливать предпочтительный размер для компонентов. Swing автоматически рассчитает предпочтительный размер.
макет для русских JPanel, является FlowLayout ... , которые я добавил в п JPanel, но не работает для русских JPanel,
Опять же, нет необходимости устанавливать предпочтительный размер каждый panel. Размер будет рассчитываться автоматически на основе предпочтительного размера всех компонентов.
главная панель BorderLayout
Это не имеет смысла, так как вы не можете добавить «п» панелей к BorderLayout. Вы можете добавить только один компонент на север, центр и юг, чтобы вы могли иметь максимум 3 разных вертикально отображаемых панели. В этом случае, если вы используете frame.pack(), тогда каждая панель будет отображаться с предпочтительным размером. С другой стороны, если вы используете frame.setSize (300, 400), то высота центральной панели будет растянута.
Поскольку вы хотите, чтобы все панели одинакового размера, возможно, вы должны использовать GridLayout, иначе вы можете попробовать BoxLayout. Прочтите учебник Swing. Он объясняет все об использовании менеджеров компоновки.
Если вам нужна дополнительная помощь, разместите свой SSCCE.
- 1. Почему «JPanel» не работает?
- 2. Keylistener не работает для JPanel
- 3. Метод JPanel paint не называется, почему?
- 4. Почему DockableFrames не работает внутри JPanel?
- 5. setVisible() метод не работает для JButton, размещенного на JPanel
- 6. addKeyListener() не работает для JPanel
- 7. setSize() для jpanel не работает
- 8. Java: Почему эта JPanel не работает правильно?
- 9. Почему JTextArea не работает с JPanel?
- 10. JPanel repaint не работает
- 11. Почему метод не работает?
- 12. Почему метод JAVA paint() не работает?
- 13. Почему не работает метод scrollTo() для iframe?
- 14. Почему мой метод .isSelected() не работает?
- 15. JPanel paintComponent (...) не работает
- 16. Метод JPanel Paint
- 17. линии к JPanel не работает
- 18. repaint() Метод не перекрашивать JPanel
- 19. Почему метод mkdirs() не работает?
- 20. Почему метод class.click не работает?
- 21. JPanel KeyListener не работает
- 22. JPanel # комплектVisible не работает.
- 23. JPanel repaint не работает
- 24. Java awt border для JPanel не работает
- 25. Почему метод сравнения не работает?
- 26. Почему метод setSecare.Builder не работает?
- 27. Почему мой метод не работает?
- 28. Почему Java-метод не работает?
- 29. Java repaint метод не работает, почему?
- 30. Почему не работает метод сортировки?
добавление снимка экрана дает мне 5 минут – stillStudent
, но я не могу найти здесь любую возможность добавить изображения ... вы можете мне помочь? – stillStudent
Значок «Изображение» выглядит как картинка; это шестой слева; см. также http://stackoverflow.com/editing-help – trashgod