Java 在面板中排列项目

Java 在面板中排列项目,java,swing,jframe,jpanel,layout-manager,Java,Swing,Jframe,Jpanel,Layout Manager,我正在为我的高中班编写一个小项目,但现在我在使用框架时遇到了一点问题。我正试图找到一种最简单、最有效的方式来安排Java7中面板的内容(注意:这意味着SpringUtilities不是一个选项) 对于每个项目的安排,我希望它能够在顶部输入您的姓名,然后在名称框下方的同一行中有3个按钮 到目前为止我掌握的代码是 private static void userInterface(){ //Declare and assign variables final S

我正在为我的高中班编写一个小项目,但现在我在使用框架时遇到了一点问题。我正试图找到一种最简单、最有效的方式来安排Java7中面板的内容(注意:这意味着SpringUtilities不是一个选项)

对于每个项目的安排,我希望它能够在顶部输入您的姓名,然后在名称框下方的同一行中有3个按钮

到目前为止我掌握的代码是

   private static void userInterface(){
        //Declare and assign variables
        final String[] options = {"Lvl 1", "Lvl 2", "Lvl 3"};
        int optionsAmt = options.length;
        //Create the panel used to make the user interface
        JPanel panel = new JPanel(new SpringLayout());

        //Create the name box
        JTextField tf = new JTextField(10);
        JLabel l = new JLabel("Name: ");
        l.setLabelFor(tf);
        panel.add(l);
        panel.add(tf);

        //Create 3 buttons with corresponding values of String options
        for(int a = 0; a < optionsAmt; a++){
            JButton b = new JButton(options[a]);
            panel.add(new JLabel());
            panel.add(b);
        }

        //Layout the panel


    }

    public static void main(String[] args) {

        JFrame f = new JFrame();
        f.pack();
        f.setTitle("Number Game");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);


    }
}
private static void userInterface(){
//声明和分配变量
最后一个字符串[]选项={“1级”、“2级”、“3级”};
int options金额=options.length;
//创建用于创建用户界面的面板
JPanel panel=newjpanel(newspringlayout());
//创建名称框
JTextField=新的JTextField(10);
JLabel l=新的JLabel(“名称:”);
l、 setLabelFor(tf);
小组.添加(l);
小组委员会.增补(tf);
//使用字符串选项的相应值创建3个按钮
对于(int a=0;a
“轻松”是一个相对的术语,例如,您可以执行以下操作

public class TestPane extends JPanel {

    public TestPane() {
        setLayout(new GridLayout(2, 1));

        JPanel fieldPane = new JPanel();
        fieldPane.add(new JTextField(10));
        add(fieldPane);

        JPanel buttonPane = new JPanel();
        buttonPane.add(new JButton("1"));
        buttonPane.add(new JButton("2"));
        buttonPane.add(new JButton("3"));
        add(buttonPane);

    }

}
public class TestPane extends JPanel {

    public TestPane() {
        setLayout(new GridBagLayout());
        GridBagConstraints gbc = new GridBagConstraints();
        gbc.gridwidth = 3;
        gbc.gridx = 0;
        gbc.gridy = 0;

        add(new JTextField(10), gbc);

        gbc.gridwidth = 1;
        gbc.gridy = 1;

        add(new JButton("1"), gbc);
        gbc.gridx++;
        add(new JButton("2"), gbc);
        gbc.gridx++;
        add(new JButton("3"), gbc);

    }

}

或者类似

public class TestPane extends JPanel {

    public TestPane() {
        setLayout(new GridLayout(2, 1));

        JPanel fieldPane = new JPanel();
        fieldPane.add(new JTextField(10));
        add(fieldPane);

        JPanel buttonPane = new JPanel();
        buttonPane.add(new JButton("1"));
        buttonPane.add(new JButton("2"));
        buttonPane.add(new JButton("3"));
        add(buttonPane);

    }

}
public class TestPane extends JPanel {

    public TestPane() {
        setLayout(new GridBagLayout());
        GridBagConstraints gbc = new GridBagConstraints();
        gbc.gridwidth = 3;
        gbc.gridx = 0;
        gbc.gridy = 0;

        add(new JTextField(10), gbc);

        gbc.gridwidth = 1;
        gbc.gridy = 1;

        add(new JButton("1"), gbc);
        gbc.gridx++;
        add(new JButton("2"), gbc);
        gbc.gridx++;
        add(new JButton("3"), gbc);

    }

}

两者都很简单,都能完成任务,但你会使用哪一个在很大程度上取决于你想要实现什么

查看更多详细信息

“轻松”是一个相对术语,例如,您可以执行以下操作

public class TestPane extends JPanel {

    public TestPane() {
        setLayout(new GridLayout(2, 1));

        JPanel fieldPane = new JPanel();
        fieldPane.add(new JTextField(10));
        add(fieldPane);

        JPanel buttonPane = new JPanel();
        buttonPane.add(new JButton("1"));
        buttonPane.add(new JButton("2"));
        buttonPane.add(new JButton("3"));
        add(buttonPane);

    }

}
public class TestPane extends JPanel {

    public TestPane() {
        setLayout(new GridBagLayout());
        GridBagConstraints gbc = new GridBagConstraints();
        gbc.gridwidth = 3;
        gbc.gridx = 0;
        gbc.gridy = 0;

        add(new JTextField(10), gbc);

        gbc.gridwidth = 1;
        gbc.gridy = 1;

        add(new JButton("1"), gbc);
        gbc.gridx++;
        add(new JButton("2"), gbc);
        gbc.gridx++;
        add(new JButton("3"), gbc);

    }

}

或者类似

public class TestPane extends JPanel {

    public TestPane() {
        setLayout(new GridLayout(2, 1));

        JPanel fieldPane = new JPanel();
        fieldPane.add(new JTextField(10));
        add(fieldPane);

        JPanel buttonPane = new JPanel();
        buttonPane.add(new JButton("1"));
        buttonPane.add(new JButton("2"));
        buttonPane.add(new JButton("3"));
        add(buttonPane);

    }

}
public class TestPane extends JPanel {

    public TestPane() {
        setLayout(new GridBagLayout());
        GridBagConstraints gbc = new GridBagConstraints();
        gbc.gridwidth = 3;
        gbc.gridx = 0;
        gbc.gridy = 0;

        add(new JTextField(10), gbc);

        gbc.gridwidth = 1;
        gbc.gridy = 1;

        add(new JButton("1"), gbc);
        gbc.gridx++;
        add(new JButton("2"), gbc);
        gbc.gridx++;
        add(new JButton("3"), gbc);

    }

}

两者都很简单,都能完成任务,但你会使用哪一个在很大程度上取决于你想要实现什么

请查看以了解更多详细信息