Java 文本字段宽度不小于';网格布局不会改变

Java 文本字段宽度不小于';网格布局不会改变,java,swing,jtextfield,Java,Swing,Jtextfield,我正在尝试将textfield放在标签旁边。而不是文本字段放置在标签下并填充一行。我试着给像JTextfield(10)这样的专栏文章,但效果不太好。这是关于我使用的布局吗 public class guessTheNumber extends JFrame{ private JLabel info, info2, info3; private JTextField input; public guessTheNumber(){ super("Guessing Game");

我正在尝试将textfield放在标签旁边。而不是文本字段放置在标签下并填充一行。我试着给像JTextfield(10)这样的专栏文章,但效果不太好。这是关于我使用的布局吗

public class guessTheNumber extends JFrame{

private JLabel info, info2, info3;
private JTextField input;

public guessTheNumber(){

    super("Guessing Game");
    setLayout(new GridLayout(6,3));

    info = new JLabel("I have a number between 1 and 1000.",SwingConstants.CENTER);
    add(info);

    info2 = new JLabel("Can you guess my number?",SwingConstants.CENTER);
    add(info2);

    info3 = new JLabel("Please enter your first guess:");
    add(info3);

    input = new JTextField("",10);
    add(input);

}
public static void main(String[] args) {

    guessTheNumber gtn = new guessTheNumber();
    gtn.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    gtn.setLocationRelativeTo(null);
    gtn.setSize(500, 200);
    gtn.setVisible(true);
}
}

我很惊讶将初始化更改为
GridLayout(6,4)
不起作用

如果希望同时显示
info3
input
,可以尝试以下摘录:

info3 = new JLabel("Please enter your first guess:");
input = new JTextField("",10);

// Combine both components in a sub-container
JPanel containerPanel = new JPanel();
containerPanel.add(info3);    
containerPanel.add(input);

// Add the container to the guessTheNumber
add(containerPanel);

尝试使用
JPanel
。也就是说,将
JPanel
添加到
JFrame
中,然后设置JPanel的布局管理器。你知道,

JPanel jp = new JPanel();
add(jp); 
jp.setLayout(new GridLayout(6,3));

请记住,现在必须将标签和文本字段添加到面板中,而不是JFrame

那么,为什么要使用6×3的网格布局呢?你的JFrame中有18个元素吗?程序还没有完成。我将使用18个元素。它与我的问题有什么关系?对于网格布局,它将用3个标签填充第一行。第二行是第一列位置的JTextField。这将是6行x 3列网格布局的预期行为。尝试将其更改为
newgridlayout(6,4)
一秒钟,你会看到标签旁边的文本字段,哎呀,没有看到。尝试使用
JPanel
。也就是说,将JPanel添加到JFrame中,然后设置JPanel的布局管理器。你知道,
JPanel-jp=newjpanel();加(jp);;jp.setLayout(新GridLayout(6,3));请记住,现在必须将标签和文本字段添加到面板中,而不是JFramePanel。谢谢!如果(从评论中可以看出)这有助于您找到解决方案,请回答这个问题。