gpt4 book ai didi

java - 在 ActionListener 外部编辑 JTextPane 时出现 NullPointerException 错误

转载 作者:行者123 更新时间:2023-12-01 13:45:19 25 4
gpt4 key购买 nike

我正在为 POP3 命令制作 gui,我在 GUI 中的初始化()方法之外编辑 JTextPane 时遇到问题

Action 监听器的一部分:

       public void actionPerformed(ActionEvent e)
{
String Input = Commands.getText();
verifyUserAndPass();

if(Input.substring(0).equals("QUIT")) {
System.exit(0);
}
if(Input.substring(0,4).equals("LIST")) {
ListCommand(Input);
}
if(Input.substring(0,4).equals("STAT")) {
ListCommand(Input);
}
if(Input.substring(0,4).equals("RETR")) {
try {
RETRCommand(Input);
} catch (IOException e1) {
e1.printStackTrace();
}
}
if(Input.substring(0,4).equals("DELE")) {
Delete(Input);
}
if(Input.substring(0,4).equals("NOOP")) {
Display.setText("+OK");
}
if(Input.substring(0,4).equals("UIDL")) {
if(userEntered == true && passEntered == true) {
Display.setText("the UIDL is"+String.valueOf(ui));
ui++;
}else {
Display.setText("Please sign in first");
}
}
if(Input.substring(0,3).equals("TOP")) {
try {
TOP(Input);
} catch (IOException e1) {
e1.printStackTrace();
}
}
if(Input.substring(0,4).equals("RSET")) {
Delete(Input);

}

verifyUserAndPass 方法:

    public void verifyUserAndPass() {
String Input = Commands.getText();
System.out.println(Input+"randomstring");
if(Input.substring(0, 4).equals("USER")) {
try {
if(verifyUser(Input.substring(5))) {
Display.setText("+OK");
Commands.setText("");
userEntered = true;
} else {
Display.setText("-ERR");
}
} catch (IOException e1) {
e1.printStackTrace();
Display.setText("-ERR");
}
}
if(Input.substring(0, 4).equals("PASS")) {
try {
if(userEntered == true) {
if(verifyPass(Input.substring(5))) {
Display.setText("+OK");
Display.setText("Welcome, you are now logged in");
Commands.setText("");
passEntered = true;
} else {
Display.setText("-ERR");
}
} else {
Display.setText("Please enter USER first");
}
} catch (IOException e1) {
e1.printStackTrace();
}

}
}

Commands 是一个 JTextField,显示是一个 JTextPane。由于某种原因,我可以编辑 ActionListener 之外的命令,但不能编辑 Display例如NOOP 下的 Display.setText 如果有效,但 verifyUserAndPass() 方法中的 Display.setText 无效但 Commands.setText 有效我做错了什么?

最佳答案

如果您不提供更多详细信息,很难回答这个问题,但我可以指出一个常见问题:

Display 可能未初始化,请检查程序的流程,然后您就可以了解为什么它未初始化。

此外,为了大家的利益,请遵守Java约定。变量和方法以驼峰式命名。所以这些需要改变:

  • 字符串输入字符串输入
  • ListCommand()listCommand()
  • 等等。我希望你能明白。

关于java - 在 ActionListener 外部编辑 JTextPane 时出现 NullPointerException 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20409082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com