我需要在JPanel
中显示单个组件,并且我希望始终保持该组件位于右下角。我试着用GridBagLayout的做到这一点:如何使用GridBagLayout将组件放在右下角?
val infoArea = new TextArea {
text = "Hello!"
border = Swing.EmptyBorder(30)
background = Color.RED
editable = false
}
val p = new JPanel
p.setLayout(new GridBagLayout)
val c = new GridBagConstraints
c.gridx = 0
c.gridy = 0
c.anchor = GridBagConstraints.LAST_LINE_END
p.add(infoArea.peer,c)
val f = new JFrame
f.setContentPane(p)
f.setVisible(true)
但文本区域在中心由于某些原因:
我在做什么错在这里?
你没有看过它出现在GridBagLayout的教程由代码(添加只有一个组件,并且不添加一些虚拟组件来填充JPanel,放置东西gridx和gridy 0,没有设置所有相关的GridBagConstraints ...),你不能指望任何东西复杂的工作没有先学习。无论如何,我会使用更简单的布局(如BorderLayouts)来使用嵌套的JPanel。 –
@HovercraftFullOfEels - 我预计只有一个单元格,并将组件放置在右下角(通过设置锚点约束)。还有什么其他的限制是相关的? – Rogach
weightx,重量之一,但无论如何,如果只添加一个组件,则无法使用GridBagLayout完成。再次,嵌套JPanel每个与它自己的布局。再次,BorderLayout将工作得很好。 –