代码特别长我就说重点
public class ***** extends JFrame implements ActionListener{
private JTextField text_amount;
public ****(){
text_amount=new JTextField(9);
text_amount.settext(".."); 这边调用 testText()函数
setVisiable(true);
}这中间还定义了一个私有内部类 内部类中也有事件处理public void testText(){ //之前也试过 settext 正常使用 输出值
System.out.println(this.text_amount.getText());
System.out.println(this.text_examount.getText());
System.out.println(this.text_exrate.getText());
}
public void actionPerformed(){ 定义一个 总的事件处理 处理构造函数中的所有ActionEvent
·在事件处理中调用set Text( ) 显示空指针异常 在第一句写就空指针
}
}
text_amout=new JTextField("....");
和 text_amount=new JTextField(9); text_amount.settext("..");
都试过 已经正常初始化,能显示给的值
定义了一个函数 public void testText( ) 发现 getText setText 都能正常使用
print 能正常输出
但是在事件处理public void actionPerformed 中 setText getText 都显示空指针异常;
求大神解答,谢谢
不知道有没有关系, 我调用测试文本行 的函数 testText()是在构造函数中 在文本行初始化后调用的
代码有点长,如果需要 我贴全部
public class ***** extends JFrame implements ActionListener{
private JTextField text_amount;
public ****(){
text_amount=new JTextField(9);
text_amount.settext(".."); 这边调用 testText()函数
setVisiable(true);
}这中间还定义了一个私有内部类 内部类中也有事件处理public void testText(){ //之前也试过 settext 正常使用 输出值
System.out.println(this.text_amount.getText());
System.out.println(this.text_examount.getText());
System.out.println(this.text_exrate.getText());
}
public void actionPerformed(){ 定义一个 总的事件处理 处理构造函数中的所有ActionEvent
·在事件处理中调用set Text( ) 显示空指针异常 在第一句写就空指针
}
}
text_amout=new JTextField("....");
和 text_amount=new JTextField(9); text_amount.settext("..");
都试过 已经正常初始化,能显示给的值
定义了一个函数 public void testText( ) 发现 getText setText 都能正常使用
print 能正常输出
但是在事件处理public void actionPerformed 中 setText getText 都显示空指针异常;
求大神解答,谢谢
不知道有没有关系, 我调用测试文本行 的函数 testText()是在构造函数中 在文本行初始化后调用的
代码有点长,如果需要 我贴全部
at 课程设计.Jiemian.actionPerformed(Jiemian.java:182)
at javax.swing.JComboBox.fireActionEvent(Unknown Source)
at javax.swing.JComboBox.setSelectedItem(Unknown Source)
at javax.swing.JComboBox.setSelectedIndex(Unknown Source)
at 课程设计.Jiemian.<init>(Jiemian.java:81)
at 课程设计.Jiemian.main(Jiemian.java:744)
at 课程设计.Jiemian.actionPerformed(Jiemian.java:182)
at javax.swing.JComboBox.fireActionEvent(Unknown Source)
at javax.swing.JComboBox.setSelectedItem(Unknown Source)
at javax.swing.JComboBox.setSelectedIndex(Unknown Source)
at 课程设计.Jiemian.<init>(Jiemian.java:81)
at 课程设计.Jiemian.main(Jiemian.java:744)
Jiemian.java:182 这行代码上下的截个图 贴出来
Exception in thread "main" java.lang.NullPointerException
at 课程设计.Jiemian.actionPerformed(Jiemian.java:182)
at javax.swing.JComboBox.fireActionEvent(Unknown Source)
at javax.swing.JComboBox.setSelectedItem(Unknown Source)
at javax.swing.JComboBox.setSelectedIndex(Unknown Source)
at 课程设计.Jiemian.<init>(Jiemian.java:81)
at 课程设计.Jiemian.main(Jiemian.java:744)
Jiemian.java:182 这行代码上下的截个图 贴出来我在事件处理的第一行 调用 看是否有问题
at 课程设计.Jiemian.actionPerformed(Jiemian.java:182)
at javax.swing.JComboBox.fireActionEvent(Unknown Source)
at javax.swing.JComboBox.setSelectedItem(Unknown Source)
at javax.swing.JComboBox.setSelectedIndex(Unknown Source)
at 课程设计.Jiemian.<init>(Jiemian.java:81)
at 课程设计.Jiemian.main(Jiemian.java:744)
Jiemian.java:182 这行代码上下的截个图 贴出来我在事件处理的第一行 调用 看是否有问题
set应该可以set空值 你在调用这个actionPerformed的地方打个断点 再看看调用完这个方法以后执行了哪里的代码 再打个断点
super(name);
JSplitPane split_h=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);//水平分割窗格
split_h.setDividerLocation(300); //设置垂直分割条位置
this.getContentPane().add(split_h);
JPanel panel1=new JPanel(new GridLayout(7,4));
split_h.add(panel1);
split_h.setOneTouchExpandable(true);
this.combox_currency=new JComboBox<String>(this.currency);//复选框
this.combox_currency.addActionListener(this);
panel1.add(this.combox_currency);
this.combox_currency1=new JComboBox<String>(this.currency1[0]); //复选框
this.combox_currency1.addActionListener(this);
this.combox_currency1.setSelectedIndex(0);
this.text_exrate=new JTextField(8);//文本行
this.text_exrate.setText("0");
panel1.add(this.text_exrate);
this.text_amount=new JTextField(8); //文本行
this.text_amount.setText("1");
panel1.add(this.text_amount);
String str[]={"计算","清除","兑换"};// 几个按钮
this.text_examount=new JTextField(8);//文本行
this.text_examount.setText("0");
panel1.add(this.text_examount,19);
JSplitPane split_v=new JSplitPane(JSplitPane.VERTICAL_SPLIT); //垂直分割窗格
split_v.setDividerLocation(500); //设置水平分割条位置
split_h.add(split_v); this.tpane=new TabPageJPanel(this.myname+","+date); // 自定义选项卡窗格面板
this.tab.addTab(this.myname+","+date,this.tpane);
split_v.add(this.tab);
JPanel panel2=new JPanel();
split_v.add(panel2);
JToolBar toolbar=new JToolBar(); //工具栏 添加了 3个JSpin
String str2[]={"打开文件","今日日期","传送本日数据"}; //几个按钮
JButton button2[]=new JButton[str2.length];
this.setVisible(true);
} 主类 构造函数 界面 大概的架子
我又在 JCOmBox 事件if()中 设置断点 JComBox 构造后就会响应事件 同样 进行不到下一步 弹出 Thread.class 然后nullPoint
我debug 应该没错吧。
但是 如果 我在按钮 事件处理中 e.getActionCommand().equals("今日日期") {} 中 调用setText() 可以正常使用
不知道为什么
就好像我在构造函数中调研我自定义的 TestText() 进行 setText 和 getText 都能正常使用一样
at 课程设计.Jiemian.actionPerformed(Jiemian.java:182)
at javax.swing.JComboBox.fireActionEvent(Unknown Source)
at javax.swing.JComboBox.setSelectedItem(Unknown Source)
at javax.swing.JComboBox.setSelectedIndex(Unknown Source)
at 课程设计.Jiemian.<init>(Jiemian.java:81)
at 课程设计.Jiemian.main(Jiemian.java:744)
Jiemian.java:182 这行代码上下的截个图 贴出来我在事件处理的第一行 调用 看是否有问题
set应该可以set空值 你在调用这个actionPerformed的地方打个断点 再看看调用完这个方法以后执行了哪里的代码 再打个断点
结果在上面。