gpt4 book ai didi

java - 空指针协助。

转载 作者:行者123 更新时间:2023-11-30 03:32:25 26 4
gpt4 key购买 nike

首先,我已经研究了空指针的含义,并且我已阅读以下内容,但我仍然完全迷失了。

What is a NullPointerException, and how do I fix it?

我的错误是

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at EBIAlarmUI$2.alarm1ButtonActionPerformed(EBIAlarmUI.java:113)
at EBIAlarmUI$2.actionPerformed(EBIAlarmUI.java:109)

这就是导致它的代码。

alarm1Button = new JButton();
alarm1Button.setText("Alarm 1");
GridBagConstraints gbc_alarm1Button = new GridBagConstraints();
gbc_alarm1Button.insets = new Insets(0, 0, 5, 0);
gbc_alarm1Button.gridx = 9;
gbc_alarm1Button.gridy = 2;
getContentPane().add(alarm1Button, gbc_alarm1Button);

alarm1Button.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
alarm1ButtonActionPerformed(evt);
}
public synchronized void alarm1ButtonActionPerformed(
java.awt.event.ActionEvent evt) {
resultsTextArea.setText("Alarm 1 Activated, String: " + alarm1);

try {
byte[] b = alarm1.getBytes("ASCII");

TwoWaySerialComm.SerialWriter sw = new
TwoWaySerialComm.SerialWriter(
twoWaySerCom.serialPort.getOutputStream());

sw.out.write(b);
} catch (IOException e) {
// Do something to handle the exception
e.printStackTrace();
}
}
});

具体来说就是这两行。

alarm1ButtonActionPerformed(evt);

resultsTextArea.setText("Alarm 1 Activated, String: " + alarm1);

确切的代码在几个小时前工作,然后我从 GroupLayout 转移到 GridBag 布局。

那么 resultsTextArea 或 Alarm1 是否为 Null?我不明白怎么会这样。它们出现在我的 GUI 中

JTextArea resultsTextArea = new JTextArea();
GridBagConstraints gbc_resultsTextArea = new GridBagConstraints();
gbc_resultsTextArea.gridwidth = 3;
gbc_resultsTextArea.fill = GridBagConstraints.BOTH;
gbc_resultsTextArea.gridx = 7;
gbc_resultsTextArea.gridy = 7;
getContentPane().add(resultsTextArea, gbc_resultsTextArea);

我什至尝试将它们添加到我的变量声明中

public javax.swing.JTextArea resultsTextArea;
public javax.swing.JTextArea customStringTextArea;
public javax.swing.JButton alarm1Button;
String alarm1 = "$81,$01,$06,$01,$10,$10,$03,$01,$FF";
String alarm2 = "*993R03,67,6#";
String alarm3 = "*994R14,67,1#";

最佳答案

resultsTextAreanull。它是 null 因为您正在隐藏变量。

首先,您声明一个实例字段...

public javax.swing.JTextArea resultsTextArea;

但是当你初始化它时,你正在创建一个本地版本......

JTextArea resultsTextArea = new JTextArea();

这意味着当您尝试从 ActionListener 引用实例字段时,它是 null

删除第二个减速...

//JTextArea resultsTextArea = new JTextArea();
resultsTextArea = new JTextArea();

关于java - 空指针协助。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28712690/

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