+--------------------------------------------+
| +-------+ +----------+|
| | +---+ | | +-----+ ||
| | | A | | | | B | ||
| | +---+ | | +-----+ ||
| +-------+ +----------+|
+--------------------------------------------+
^
|
|
Center
背景: I have
-
一个JPanel(FlowLayout.CENTER)中的JButton("A"),大小为50x25
-
JLabel("B"),大小100x25,在JPanel(FlowLayout.RIGHT)中
-
两个JPanel都在JPanel中
期望的结果: I want
-
JButton "A"总是水平居中,
-
JLabel "B"始终向右冲 .
我试过了: These didn't work for me
-
BorderLayout对我不起作用,因为JButton "A"向左移位:
-
我宁愿不用一个不可见的组件WEST来撤消转换
+--------------------------------------------+
| +-------+ +----------+|
| | +---+ | | +-----+ ||
| | | A | | | | B | ||
| | +---+ | | +-----+ ||
| +-------+ +----------+|
+--------------------------------------------+
^ ^
| |
| |
| Center
|
Shifted Left
- GridLayout不起作用,因为我不希望扩展“A”和“B”
感谢任何建议!
附:
JButton / JLabel都在它们自己的JPanel中,因为没有Jpanel,BorderLayout.CENTER会在主要面板的整个宽度(直到JLabel的左边缘)上扩展JButton . 对于问题陈述,JPanels不是必需的/关键的
Conclusion :
- 我带着"Hovercraft Full Of Eels"回答如下 . 谢谢!
1 回答
您应该嵌套JPanels并使用布局组合 . 将包含JButtons的面板放置到使用GridLayout(1,0)(1行,可变列数)的另一个JPanel中可以工作,并将该JPanel放入BorderLayout的BorderLayout.NORTH位置 - 使用JPanel可以工作 .
例如