在单个Java语句中创建对象时设置JTextField

在单个Java语句中创建对象时设置JTextField,java,swing,Java,Swing,我正在创建一个JPanel并设置如下布局: jpObj.add(createJTextField("item1",new Dimension(200,300))); jpObj.add(createJTextField("item2",new Dimension(500,100))); JPanel jpObj=新的JPanel() jpObj.setLayout(新的BoxLayout(jpObj,BoxLayout.Y_轴)) 然后将JTextField添加到我的JPanel中,如下所示:

我正在创建一个JPanel并设置如下布局:

jpObj.add(createJTextField("item1",new Dimension(200,300)));
jpObj.add(createJTextField("item2",new Dimension(500,100)));
JPanel jpObj=新的JPanel()
jpObj.setLayout(新的BoxLayout(jpObj,BoxLayout.Y_轴))

然后将JTextField添加到我的JPanel中,如下所示:

jpObj.add(createJTextField("item1",new Dimension(200,300)));
jpObj.add(createJTextField("item2",new Dimension(500,100)));
jpObj.add(新JTextField(“300000”)

我想指定JTextField的高度,而不必编写单独的代码行。比如说,

JTextField textField=新的JTextField(“600000”)
textField.setMaximumSize(新尺寸(1000,50))
jpObj.add(textField)

在创建JTextField对象时,是否有方法指定其高度?下面的尝试似乎对我不起作用

jpObj.add(新JTextField(“300000”).setMaximumSize(新维度(1000,50))

提前谢谢

没有,因为它返回了void

你应该按照你描述的那样做

JTextField textField = new JTextField("600000");
textField.setMaximumSize(new Dimension(1000,50) );
jpObj.add(textField);
我想您可能会创建自己的方法,该方法可以创建、设置高度并返回一个JTextField对象,如下所示,然后这可以在一行中完成

private JTextField createJTextField(String text, Dimension dimenstion) {
    JTextField textField = new JTextField(text);
    textField.setMaximumSize(dimenstion);
    return textField;
}
那么你可以这样称呼它:

jpObj.add(createJTextField("item1",new Dimension(200,300)));
jpObj.add(createJTextField("item2",new Dimension(500,100)));
没有因为有一个无效的返回

你应该按照你描述的那样做

JTextField textField = new JTextField("600000");
textField.setMaximumSize(new Dimension(1000,50) );
jpObj.add(textField);
我想您可能会创建自己的方法,该方法可以创建、设置高度并返回一个JTextField对象,如下所示,然后这可以在一行中完成

private JTextField createJTextField(String text, Dimension dimenstion) {
    JTextField textField = new JTextField(text);
    textField.setMaximumSize(dimenstion);
    return textField;
}
那么你可以这样称呼它:

jpObj.add(createJTextField("item1",new Dimension(200,300)));
jpObj.add(createJTextField("item2",new Dimension(500,100)));

setMaximumSize不返回任何内容,因此不返回。使用多行是否有问题?是的,以上所有语句都是通过一些转换自动生成的。与添加更多语句相比,最好进行单行更改以指定JTextField的高度。有关创建单行语句的方法,请参阅我的修订答案。永远不要使用setXXSize-请参阅我在接受的答案中的注释setMaximumSize不会返回任何内容,因此否。使用多行是否有问题?是,以上所有语句都是通过一些转换自动生成的。与添加更多语句相比,最好进行单行更改以指定JTextField的高度。有关创建单行语句的方法,请参阅我的修订答案。切勿使用setXXSize-有关传播setXXSize的信息,请参阅接受答案-1中的我的注释。不管问题出在哪里,这都不是解决问题的方法,因为某些原因,请参见。相反,重写getMaximum以返回合理的内容(JTextField有缺陷,因为它返回高度的MAX_值,这对于一行文本来说简直是疯狂…@kleopatra这没有理由否决我的答案,我的答案准确地回答了一个问题,即当某个内容返回无效时,为什么不能链接。将你的建议作为评论留在原始帖子上,通知用户,但没有理由否决我的意见。@kleopatra显然你不理解回答别人问题的概念。我已经回答了被问到的问题,我也没有任何错误。我没有给出任何不好的建议,也没有收到任何错误的代码。因此,没有一个理由被否决。正如我所说的,如果你想帮助用户,然后在他的问题下留下一条评论,描述为什么你觉得他使用的方法可以改进,并保持不变,出于这个原因的否决票是愚蠢的。我原以为有这么多代表性的人现在已经掌握了这么多。-1用于传播setXXSize。不管问题出在哪里,这都不是解决问题的方法,因为某些原因,请参见。相反,重写getMaximum以返回合理的内容(JTextField有缺陷,因为它返回高度的MAX_值,这对于一行文本来说简直是疯狂…@kleopatra这没有理由否决我的答案,我的答案准确地回答了一个问题,即当某个内容返回无效时,为什么不能链接。将你的建议作为评论留在原始帖子上,通知用户,但没有理由否决我的意见。@kleopatra显然你不理解回答别人问题的概念。我已经回答了被问到的问题,我也没有任何错误。我没有给出任何不好的建议,也没有收到任何错误的代码。因此,没有一个理由被否决。正如我所说的,如果你想帮助用户,然后在他的问题下留下一条评论,描述为什么你觉得他使用的方法可以改进,并保持不变,出于这个原因的否决票是愚蠢的。我原以为有这么多知名度的人现在会有这么大的影响力。