我有两个组件(textfield
和jList
)。当它们垂直对齐时,它们会在运行时一起移动。
在图片中,文本字段左侧有一个lblIcon
,下面的initcomponents
方法代码正常工作。
lblIcon.setIcon(new ImageIcon(new ImageIcon("icons/yeniNotBtn.png").getImage().getScaledInstance(25, 25, Image.SCALE_DEFAULT)));
当它工作时textfield
向右浮动一点,jList
向右移动。
我认为有一些关于布局但我无法弄清楚。听听关于布局的一般建议会很好。我是新手。提前致谢。
答案 0 :(得分:2)
生成布局有点像黑色艺术和伏都教,这通常需要对可用布局管理器的合理了解。
一个布局管理器无法解决所有问题(所有时间)并且您倾向于使用一系列布局管理器,每个管理器都专注于UI的特定部分来解决特定问题。
例如,您可以通过将JLabel
和JTextField
置于使用JPanel
的{{1}}中来解决您的布局,然后将其与{{FlowLayout
一起放置1}}使用JList
的另一个JPanel
。
您采取的方法将取决于更大的图景,并且需要更多信息,然后在您的问题中提供。
我能提出的最重要的建议是:
BorderLayout
也是一个彻头彻尾的痛苦,我已经看到它分崩离析的次数多了,我想回忆一下,我倾向于避免使用其他解决方案。下面的示例使用GroupLayout
,它是一个更灵活但也是更复杂的布局管理器之一,但它允许您做一些非常棒的事情。
GridBagLayout
查看Laying Out Components Within a Container,How to Use GridBagLayout,How to Use BorderLayout和How to Use FlowLayout了解更多详情
答案 1 :(得分:0)
使用任何摆动组件时,请设置布局。
如果你这样做,frame.setLayout(null)
那么请用setBounds(x,y,width,height)
方法绑定你的组件。
它将绑定您的组件,就像您放入容器一样。