【发布时间】:2010-10-26 12:52:37
【问题描述】:
我在JPanel 中有很多JLabels(包括ImageIcons)。
而这个JPanel 只是GUI 上的一个面板;还有很多其他面板。
我想将标签放置在其JPanel 容器上的确切像素坐标上。
如果不使用GroupLayout,我怎么能做到这一点?
【问题讨论】:
标签: java user-interface swing layout-manager
我在JPanel 中有很多JLabels(包括ImageIcons)。
而这个JPanel 只是GUI 上的一个面板;还有很多其他面板。
我想将标签放置在其JPanel 容器上的确切像素坐标上。
如果不使用GroupLayout,我怎么能做到这一点?
【问题讨论】:
标签: java user-interface swing layout-manager
请参阅 Java 教程中的 Doing Without a Layout Manager (Absolute Positioning)。
创建没有布局管理器的容器涉及以下步骤。
- 通过调用
setLayout(null)将容器的布局管理器设置为 null。- 为容器的每个子级调用
Component类的setbounds方法。- 调用
Component类的repaint方法。
【讨论】:
要么
LayoutManager (Container.setLayout) 以设置您想要的确切位置或null 布局管理器 (myPanel.setLayout(null);) 并在外部设置组件位置 (Component.setBounds)。【讨论】:
看看 MigLayout,它允许你做绝对定位,它不是 JDK 的一部分,but a seperate download。
就布局管理器而言,它非常好,可以进行绝对定位,还有很多其他的东西。
【讨论】: