我通过使用方法'parent.addTab(child)'将子面板添加到父面板,并在子面板中添加了一个JLabel,但setBounds方法在子面板中不起作用。这JLabel正在一个修复位置显示。在父面板中,setBounds工作正常。该怎么办?Java Swing布局问题
2
A
回答
2
您需要为您的子面板定义合适的布局管理器。例如,如果您选择使用BorderLayout
,你可以安排在标签面板的中心显示如下:
JTabbedPane parent = new JTabbedPane();
JPanel child = new JPanel(new BorderLayout());
// Create label with centrally aligned text (default is left).
JLabel label = new JLabel("Hello, World", JLabel.CENTER_ALIGNMENT);
// Add label to center of the child panel.
child.add(label, BorderLayout.CENTER);
// Add child panel as a tab within parent JTabbedPane.
// The child panel will expand to fit the size of the tab.
parent.addTab("My Tab", child);
更多灵活的布局考虑使用GridBagLayout
。
0
setBounds
仅适用于布局设置为null
的容器。 (或用于在桌面上移动框架)。
JPanel
的默认布局管理器是FlowLayout
,它按水平顺序布置组件,并在当前填满时(如页面中的文本)拖放到新行。
使用null
布局和setBounds
不奠定了GUI的一个推荐的方式 - 这是非常脆弱的 - 过分依赖于容器/框架和桌面可以轻松突破的尺寸,分辨率和字体设置的大小布局。
通读Swing教程的Using Layout Managers部分,了解哪些布局管理器可以帮助您实现自己想要的功能。
相关问题
- 1. Java swing布局问题
- 2. Swing布局问题
- 3. Swing布局问题
- 4. Swing布局问题到Java 8
- 5. 的Java Swing网格布局问题
- 6. Java Swing布局块
- 7. 的Java Swing布局
- 8. 布局问题 - Java
- 9. Java布局问题
- 10. Java布局问题
- 11. 布局使用的Java Swing
- 12. Java边框布局问题?
- 13. Java挑选布局问题
- 14. Java UI布局问题
- 15. Java swing - list.add问题
- 16. Java Swing FocusTraversalPolicy问题
- 17. Java Swing textfield问题
- 18. Java Swing Threading问题
- 19. Java Swing GUI - 问题
- 20. 布局问题
- 21. 布局问题
- 22. 布局问题
- 23. 布局问题
- 24. Java swing布局,3个面板
- 25. 让Java Swing程序再次布局
- 26. Java Swing布局这些组件
- 27. 如何调试Java Swing布局
- 28. 布局中的Java Swing指定大小
- 29. 进行动态布局的Java Swing
- 30. 的Java Swing搬走从空布局