Java 如何将多个JTextfields放置在BorderLayout中心的不同行上?
因此,首先,我将文本字段及其标签添加到单独的面板中,因为我希望它们彼此对齐,我通过流布局添加它们Java 如何将多个JTextfields放置在BorderLayout中心的不同行上?,java,Java,因此,首先,我将文本字段及其标签添加到单独的面板中,因为我希望它们彼此对齐,我通过流布局添加它们 //add them in Flow Layout panel.add(label_1);panel.add(file_name); pane2.add(label_2);pane2.add(h_link); pane3.add(label_3);pane3.add(pages); 接下来我想做的是使用BorderLayout添加它们
//add them in Flow Layout
panel.add(label_1);panel.add(file_name);
pane2.add(label_2);pane2.add(h_link);
pane3.add(label_3);pane3.add(pages);
接下来我想做的是使用BorderLayout添加它们,使它们都位于窗口的中心。此外,我想添加提交按钮的细节
frame.getContentPane().add(BorderLayout.CENTER, panel);
frame.getContentPane().add(BorderLayout.CENTER, pane2);
frame.getContentPane().add(BorderLayout.CENTER, pane3);
frame.getContentPane().add(BorderLayout.SOUTH, submit);
frame.setVisible(true);
当我写这篇文章时,我没有得到我想要的结果,附带的屏幕截图显示了我不想要的结果框架。
当然,如果你对如何更有效地做这件事有任何建议,请分享
解决这一问题的关键是嵌套
JPanels
,每个都使用自己的布局,从而允许您有效地嵌套布局:
- 将
放置在JPanel
BorderLayout.CENTER位置
- 给
一个JPanel
,一个允许多行一列,例如GridLayout
newgridlayout(0,1)
- 将您的
s添加到JTextField
JPanel
另一种方法是简单地使用一个JTable,一个具有单列和多行的JTable
另一种方法——如果您试图从JLabel/JTextField网格中的用户那里获得输入——是使用GridBagLayout将组件很好地分隔在一起解决这一问题的关键是嵌套JPanels,每个都使用自己的布局,从而允许您有效地嵌套布局:
- 将
放置在JPanel
BorderLayout.CENTER位置
- 给
一个JPanel
,一个允许多行一列,例如GridLayout
newgridlayout(0,1)
- 将您的
s添加到JTextField
JPanel
另一种方法是简单地使用一个JTable,一个具有单列和多行的JTable
另一种方法——如果您试图从JLabel/JTextField网格中的用户那里获得输入——是使用GridBagLayout将组件很好地分隔在一起我找不到附加的屏幕截图,但在BorderLayout的每个位置(例如中心)只能有一个组件。最终在嵌套的JPanel中使用GridLayout(或GridBagLayout、BoxLayout等)(Obs:不再需要
getContentPane()
)我找不到附加的屏幕截图,但BorderLayout的每个位置(例如中心)只能有一个组件。最终在嵌套的JPanel中使用GridLayout(或GridBagLayout、BoxLayout等)(Obs:不再需要getContentPane()
)