java如何在BorderLayout中心的不同行上放置多个JTextField?
因此,首先,我将文本字段及其标签添加到单独的面板中,因为我希望它们彼此一致,我通过流布局添加它们
//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);
在我写这篇文章的时候,我没有得到我想要的结果,附带的屏幕截图显示了我不想要的结果。 当然,如果你对如何更有效地做这件事有任何建议,请分享
# 1 楼答案
解决这个问题的关键是嵌套
JPanels
,每个嵌套都使用自己的布局,从而允许您有效地嵌套布局:BorderLayout.CENTER position
中放置一个JPanel
JPanel
aGridLayout
,一个允许多行一列,例如new GridLayout(0, 1)
JTextField
添加到JPanel
另一种方法是简单地使用一个JTable,即一列多行的JTable
如果您试图在JLabel/JTextField网格中获得用户的输入,另一种方法是使用GridBagLayout将组件很好地分隔在一起