Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在super()中使用其他类变量;?_Java_Swing_Awt_Panel_Getter - Fatal编程技术网

Java 如何在super()中使用其他类变量;?

Java 如何在super()中使用其他类变量;?,java,swing,awt,panel,getter,Java,Swing,Awt,Panel,Getter,如果我有一个类有一个名为name的变量,我怎么能把它放到一个super;另一个类中的构造函数?例如: 这个类有一个变量'name',用户为它选择一个单独的字符串,因此它显然总是会根据用户输入的内容进行更改 String name; public String getName(){ return name; } name= JOptionPane.showInputDialog("Imagine a car, what is it's name?"); if(name == nul

如果我有一个类有一个名为name的变量,我怎么能把它放到一个super;另一个类中的构造函数?例如:

这个类有一个变量'name',用户为它选择一个单独的字符串,因此它显然总是会根据用户输入的内容进行更改

String name;

public String getName(){
 return name;
}

 name= JOptionPane.showInputDialog("Imagine a car, what is it's name?");
    if(name == null || (name != null && ("".equals(name))))   
    {
        JOptionPane.showMessageDialog(null, "Invalid input/pressed cancel, closing program.");
      System.exit(0);
    }
    JOptionPane.showMessageDialog(null, "Ah okay, so it's name is " + name); 
然后在另一个类中,我得到了这个,我想把getName放到super中;建造师

 import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class TestProjectJPanel extends JFrame {

    TestProjectDialog tpd = new TestProjectDialog();


    public JButton b;
    public Color color = (Color.WHITE);
    public JPanel panel;


    public TestProjectJPanel(){
        super(); // <<<<<<<<<<<<<<<< want to put the method getName in here
        panel = new JPanel();
        panel.setBackground(color);

    }


        }
当我尝试将其放入println时出错

这条线上有多个标记 -令牌上出现语法错误。此令牌后应为@ -语法错误,插入标识符以完成MethodHeaderName -语法错误,插入以完成MethodDeclaration -语法错误,请插入SimpleName以完成QualifiedName


如果调用方法,则需要在方法名称后加括号,例如System.out.printlngetName;您将无法访问JFrame的源代码,您无法向其添加任何内容。您可以像现在一样进行扩展。我想getName是否在另一个类中?然后,如果要在调用JFrame的构造函数时使用getName,则需要该类的对象。如果你不知道某事物是什么,你就不可能得到它的名字。那么你想知道的对象在哪里?我没看到。是tpd吗?tpd的名称设置在哪里?实际上,将在设置tpd之前调用super,因此这不会有帮助。JFrame有一个setTitle方法,如果无法在super构造函数中传递名称,您可以稍后使用该方法。
System.out.println(getName);