Когда программа пытается получить текст из текстовых полей (в actionPreformed()), я получаю ошибку java.lang.NullPointerException
, даже если в текстовом поле есть текст.getText from textfields возвращает null
Ошибка возникает только при нажатии кнопки «Ввод». Все, что мне нужно, это получить целочисленные значения от пользователя, используя текстовые поля, когда нажата кнопка ввода.
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Main extends JFrame implements ActionListener {
private JTextField textField1, textField2, time;
public static void main(String[] args) {
JFrame frame = new JFrame("Clock");
frame.setSize(600, 600);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel p = new JPanel();
JPanel p2 = new JPanel();
JPanel p3 = new JPanel();
JPanel p4 = new JPanel();
JTextField textField1 = new JTextField(10);
JTextField textField2 = new JTextField(10);
JLabel label = new JLabel("Enter the Time");
p.add(label);
p.add(textField1);
p.add(textField2);
JButton button = new JButton("Enter");
button.addActionListener(new Main());
p2.add(button);
JTextField time = new JTextField();
time.setEditable(false);
p3.add(time);
frame.add(p, BorderLayout.PAGE_START);
frame.add(p2, BorderLayout.PAGE_END);
frame.add(p3, BorderLayout.CENTER);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("Enter")){
int int1 = Integer.parseInt(textField1.getText());
int int2 = Integer.parseInt(textField2.getText());
System.out.println(int1);
System.out.println(int2);
}
System.out.println("Pressed");
}
}
Как это сделать?