我正在尝试找出一种动态创建 JTextfield 而不将其分配给变量的方法。
panel.add(new JTextField("hello"));
上面的代码工作得很好,但是当我尝试像下面这样操作时,编译器说这里不允许使用 Void。我是初学者,我知道这可能很简单,请帮助我。
panel.add(new JTextField("hello").setForeground(Color.yellow));
setForeground
返回void
。它修改JTextField
而不是返回一个新的。
这样做可能会有所帮助:
JTextField field = new JTextField("hello");
field.setForeground(Color.yellow);
panel.add(field);
您可以定义自己的构造函数,以便将这些调用链接在一起,尽管我不知道是否值得麻烦,只是为了避免变量。
private JTextField newColoredTextField(String s, Color c) {
JTextField tf = new JTextField(s);
tf.setForeground(c);
return tf;
}
然后你可以像这样使用它:
panel.add(newColoredTextField("hello", Color.yellow));
您不能将构造函数和对 setForeground 的调用链接在一起。该语句的返回值将是最后一个方法调用的返回值,即void
.
相反,您需要实例化该字段,修改它,然后添加它:
JTextField field = new JTextField("hello");
field.setForeground(Color.yellow);
panel.add(field);