这里不允许空虚

时间:2013-05-16 21:15:04

标签: java swing jpanel jlabel

我正在尝试一种动态创建JTextfield的方法,而不将其分配给变量。

panel.add(new JTextField("hello"));

上面的代码工作正常,但是当我尝试和操作如下时编译器说Void不允许在这里。我是初学者,我知道这可能很简单,请帮帮我。

panel.add(new JTextField("hello").setForeground(Color.yellow));

3 个答案:

答案 0 :(得分:3)

setForeground返回void。它会修改JTextField,而不是返回一个新的。{/ p>

这样做可能会有所帮助:

JTextField field = new JTextField("hello");
field.setForeground(Color.yellow);
panel.add(field);

答案 1 :(得分:2)

您可以定义自己的构造函数,这样您就可以将这些调用链接在一起,虽然我不知道它是否值得麻烦,只是为了避免变量。

private JTextField newColoredTextField(String s, Color c) {
    JTextField tf = new JTextField(s);
    tf.setForeground(c);
    return tf;
}

然后您可以这样使用它:

panel.add(newColoredTextField("hello", Color.yellow));

答案 2 :(得分:1)

您不能将构造函数和对setForeground的调用链接在一起。语句的返回值将是最后一个方法调用的返回值,即void

相反,您需要实例化该字段,修改它,然后添加它:

JTextField field = new JTextField("hello");
field.setForeground(Color.yellow);

panel.add(field);