当我尝试将.setText()添加到程序中的JTextArea对象时,我不明白为什么会出现运行时错误。在我的主GUI类中,我设置了一个创建弹出JFrame对象的事件,这个JFrame中有一个按钮,它也设置了JTextArea.setText();到我的主GUI类中的JTextArea,名为MainOut。
public class GUI extends JFrame implements ActionListener {
JTextArea MainOut = new JTextArea(20,50);
public void actionPerformed(ActionEvent e) {
if (e.getSource() == ExitVar){
System.exit(0);
}
else if (e.getSource() == ServerLoginVar) { //This is my event that creates a
//new JFrame popup
new ServerLoginGUI(this);
}
//-------------------------------------------------------------------
public class ServerLoginGUI extends JFrame implements ActionListener {
JTextField ServerIP = new JTextField(15);
JPasswordField ServerPassword = new JPasswordField(15);
JPanel ServerLoginPanel = new JPanel();
JButton LoginButton = new JButton("Login");
JTextArea Area;
JLabel ServerIPLabel = new JLabel("Server Address:");
JLabel ServerPasswordLabel = new JLabel("Password :");
GUI GUi;
public void actionPerformed(ActionEvent e) {
if (e.getSource() == LoginButton){
if (ServerIP.getText().isEmpty() || ServerPassword.getText().isEmpty()){
} //do nothing
else {
new ServerAccess(this);
// this is the .setText() that will generate a error
GUi.SiteNameField.setText("Test from the ServerLogin event!");
dispose();}
}
}
}
答案 0 :(得分:1)
GUI
类中创建了ServerLoginGUI
的对象。但是,您没有使用调用类初始化GUi
对象。以下是解决此问题的方法。在ServerLoginGUI
类中添加以下构造函数:
public ServerLoginGUI(GUI gui)
{
this.GUi = gui;
}
现在您的代码应该可以正常运行并且不会出现运行时错误。我假设是一个nullpointer错误,虽然你没有指定。
PS:请正确使用Java约定。变量以小写字母开头。 :)