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() { … });
}