有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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);

在我写这篇文章的时候,我没有得到我想要的结果,附带的屏幕截图显示了我不想要的结果。 当然,如果你对如何更有效地做这件事有任何建议,请分享

enter image description here


共 (1) 个答案

  1. # 1 楼答案

    解决这个问题的关键是嵌套JPanels,每个嵌套都使用自己的布局,从而允许您有效地嵌套布局:

    • BorderLayout.CENTER position中放置一个JPanel
    • 给出JPanelaGridLayout,一个允许多行一列,例如new GridLayout(0, 1)
    • JTextField添加到JPanel

    另一种方法是简单地使用一个JTable,即一列多行的JTable


    如果您试图在JLabel/JTextField网格中获得用户的输入,另一种方法是使用GridBagLayout将组件很好地分隔在一起