有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

这里不允许使用java Void

我试图找到一种方法来动态创建JTextfield,而不将其分配给变量

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

上面的代码运行得很好,但是当我尝试像下面这样操作时,编译器说这里不允许使用Void。我是初学者,我知道这可能很简单,请帮助我

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

共 (3) 个答案

  1. # 1 楼答案

    setForeground返回void。它修改JTextField而不是返回一个新的

    这样做可能会有帮助:

    JTextField field = new JTextField("hello");
    field.setForeground(Color.yellow);
    panel.add(field);
    
  2. # 2 楼答案

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

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

    然后你可以这样使用它:

    panel.add(newColoredTextField("hello", Color.yellow));
    
  3. # 3 楼答案

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

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

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