正在进行一项家庭作业,我不知道为什么将任何东西放入actionPerformed方法时会导致错误,尤其是空指针错误。我想做的是让按钮将其他两个文本字段组合成另一个。
如果我拿出代码并离开记录器,则单击按钮将触发记录器。但是由于某种原因,如果actionPerformed方法中实际上有什么东西,它只会向我抛出错误。
import org.apache.logging.log4j.*;
import javax.swing.*;
import java.awt.event.*;
public class MyPanel extends JPanel
implements ActionListener
{
private static Logger logger = LogManager.getLogger(MyPanel.class);
private JLabel lblFirstName;
private JLabel lblLastName;
private JLabel lblFullName;
private JButton btnSubmit;
private JTextField txtFirstName;
private JTextField txtLastName;
private JTextField txtFullName;
public MyPanel()
{
logger.debug("INSIDE PANEL CONSTRUCTOR !!!");
JLabel lblFirstName = new JLabel("First name: ");
add(lblFirstName);
JTextField txtFirstName = new JTextField("", 10);
add(txtFirstName);
JLabel lblLastName = new JLabel("Last name: ");
add(lblLastName);
JTextField txtLastName = new JTextField("", 10);
add(txtLastName);
JButton btnSubmit = new JButton("Submit");
add(btnSubmit);
JLabel lblFullName = new JLabel("Full name: ");
add(lblFullName);
JTextField txtFullName = new JTextField("", 20);
txtFullName.setEditable(false);
add(txtFullName);
btnSubmit.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e)
{
logger.debug("Inside the Action Listener!");
txtFullName.setText(txtFirstName.getText() + " " + txtLastName.getText());
}
}
我已经尝试过set,setText,获取文本,甚至只是将getTexts放入字符串并放入setTest(string),但这些都没有用。我想我错过了一些非常重要的东西,但我不知道这是什么。在线上的所有教程都是关于追加到textArea的,但这是试图将两个textFields合并为一个,并且没有.append函数。