Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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 如何访问主()中非静态的panel1_Java_User Interface_Static Variables_Non Static - Fatal编程技术网

Java 如何访问主()中非静态的panel1

Java 如何访问主()中非静态的panel1,java,user-interface,static-variables,non-static,Java,User Interface,Static Variables,Non Static,这一部分的意思是不会出现一条消息,上面写着“已提交”,但只会弹出一个空白窗口 public class task1 extends JFrame{ private JTextField firstnameTextField; private JTextField surnameTextField; private JTextField emailTextField; private JButton submitButton; private JPanel

这一部分的意思是不会出现一条消息,上面写着“已提交”,但只会弹出一个空白窗口

public class task1 extends JFrame{

    private JTextField firstnameTextField;
    private JTextField surnameTextField;
    private JTextField emailTextField;
    private JButton submitButton;
    private JPanel panel1;

    
panel1未被识别,我知道这是因为它在静态方法中是非静态变量,但不确定如何更正


将GUI构建逻辑移动到构造函数中,它无论如何不属于main:

但是,这仍然缺少对组件进行有意义的初始化。

实际上,您不希望从main访问这些内容。通常,特别是对于较新的程序员,main应该包含一行。该行是新的MyType.go;或新的MyType.goargs;-然后很长一段时间忘记静态,这是一个棘手的概念,你不需要经常使用,除了主。
   public task1() {
submitButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent actionEvent) {
                JOptionPane.showMessageDialog(panel1,
                        String.format(
                                "You form has been submitted with the following data: \n" +
                                        "First name: %0$s \n" +
                                        "Surname: %1$s \n" +
                                        "Email: %2$s",
                                firstnameTextField.getText(), surnameTextField.getText(), emailTextField.getText()));
            }
        });
    }
public static void main(String[] args) {
        task1 frame = new task1();
        frame.add(panel1);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
        frame.pack();



    }

}
public task1() {
    panel1 = new JPanel();
    add(panel1);
    submitButton.addActionListener(new ActionListener() { … });
}