| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 701 人关注过本帖
标题:事件监视器问题?
只看楼主 加入收藏
神龙火炬
Rank: 1
来 自:广西柳州
等 级:新手上路
帖 子:13
专家分:5
注 册:2014-11-11
结帖率:100%
收藏
 问题点数:0 回复次数:5 
事件监视器问题?
package 计算器;


public class jisuanqi {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        WindowAction win=new WindowAction();
        win.setBounds(100,100,390,360);
        win.setTitle("计算器");
    }

}

**********************************************
package 计算器;


import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class WindowAction extends JFrame{
    /**
     *
     */
    private static final long serialVersionUID = 1L;
   
    JTextField inputNumberOne, inputNumberTwo;
    JTextArea outNumberThree;
    JButton[] button;
    ComputerLiatener computer;
    public WindowAction(){
        init();
        setVisible(true);
        setResizable(false);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
     void init(){
        setLayout(new FlowLayout());
       inputNumberOne=new JTextField(5);
       inputNumberTwo=new JTextField(5);
       outNumberThree=new JTextArea(9,10);   
       button=new JButton[4];
       button[0]=new JButton("+");
       button[1]=new JButton("-");
       button[2]=new JButton("*");
       button[3]=new JButton("/");
       String[] a={"+","-","*","/"};
       for(int i=0;i<a.length;i++){
           button[i].setText(a[0]);
       }
       computer.setJTextFieldOne(inputNumberOne);//请教这里有什么错误??
       computer.setJTextFieldTwo(inputNumberTwo);//请教这里有什么错误??
       computer.setJTextArea(outNumberThree);//请教这里有什么错误??
       computer.setJButton(button);//请教这里有什么错误??
       button[0].addActionListener(computer);
       button[1].addActionListener(computer);
       button[2].addActionListener(computer);
       button[3].addActionListener(computer);
       add(inputNumberOne);
       add(inputNumberTwo);
       add(button[0]);
       add(button[1]);
       add(button[2]);
       add(button[3]);
       add(outNumberThree);  
   }      
}

*****************************************************************************************
package 计算器;



import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class ComputerLiatener implements ActionListener{
    JTextField inputNumberOne,inputNumberTwo;
    JTextArea outNumberThree;
    String but;

    public void setJTextFieldOne(JTextField t) {
        // TODO 自动生成的方法存根
        inputNumberOne=t;
    }

    public void setJTextFieldTwo(JTextField t) {
        // TODO 自动生成的方法存根
        inputNumberTwo=t;
    }

    public void setJTextArea(JTextArea t) {
        // TODO 自动生成的方法存根
        outNumberThree=t;
    }
   
    public void setJButton(JButton[] button){
        but=button.toString();
        
    }
@Override
public void actionPerformed(ActionEvent e) {
    // TODO 自动生成的方法存根
       try{
           double number1=Double.parseDouble(inputNumberOne.getText());
           double number2=Double.parseDouble(inputNumberTwo.getText());
           double Result=0;
           if(but.equals("+")){
               Result=number1+number2;
           }
           else if(but.equals("=")){
               Result=number1-number2;
           }
           else if(but.equals("*")){
               Result=number1*number2;
           }
           else if(but.equals("/")){
               Result=number1/number2;
           }
           outNumberThree.append(number1+" "+but+" "+number2+"="+Result+"\n");
       }catch(Exception exception){
           outNumberThree.append("输入出错!!");
       }
}
}
*****************************************************
Exception in thread "main" java.lang.NullPointerException
    at 计算器.WindowAction.init(WindowAction.java:41)
    at 计算器.WindowAction.<init>(WindowAction.java:22)
    at 计算器.jisuanqi.main(jisuanqi.java:8)
搜索更多相关主题的帖子: 计算器 jisuanqi package public import 
2014-11-11 22:42
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:0 
空指针异常,对象没有赋值就使用,这是很容易犯的错误
收到的鲜花
  • 神龙火炬2014-11-14 19:09 送鲜花  1朵   附言:我很赞同

思考赐予新生,时间在于定义
2014-11-12 12:58
神龙火炬
Rank: 1
来 自:广西柳州
等 级:新手上路
帖 子:13
专家分:5
注 册:2014-11-11
收藏
得分:0 
改过之后computer=new ComputerListener();   没问题了,  运行之后
图片附件: 游客没有浏览图片的权限,请 登录注册
  请教这里为什么是地址而不是“+”  结果也不对!按钮都显示成“+”。

每天学得一新我足已!
2014-11-12 14:05
ghjsmzy
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:187
专家分:573
注 册:2009-6-17
收藏
得分:0 
错误一:button[i].setText(a[i]);
错误二:computer.setJButton(button);//请教这里有什么错误??  删除
错误三:ComputerLiatener.setJButton    String but;  删除相关
                置换:
                        if (e.getActionCommand().equals("+")) {
                Result = number1 + number2;
            } else if (e.getActionCommand().equals("-")) {
                Result = number1 - number2;
            } else if (e.getActionCommand().equals("*")) {
                Result = number1 * number2;
            } else if (e.getActionCommand().equals("/")) {
                Result = number1 / number2;
            }
            outNumberThree.append(number1 + " " + e.getActionCommand() + " " + number2 + "="
                    + Result + "\n");
2014-11-12 16:29
ghjsmzy
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:187
专家分:573
注 册:2009-6-17
收藏
得分:0 
错误一:button[i].setText(a[i]);
错误二:computer.setJButton(button);//请教这里有什么错误??  删除
错误三:ComputerLiatener.setJButton    String but;  删除相关
                置换:
                        if (e.getActionCommand().equals("+")) {
                Result = number1 + number2;
            } else if (e.getActionCommand().equals("-")) {
                Result = number1 - number2;
            } else if (e.getActionCommand().equals("*")) {
                Result = number1 * number2;
            } else if (e.getActionCommand().equals("/")) {
                Result = number1 / number2;
            }
            outNumberThree.append(number1 + " " + e.getActionCommand() + " " + number2 + "="
                    + Result + "\n");
2014-11-12 16:29
神龙火炬
Rank: 1
来 自:广西柳州
等 级:新手上路
帖 子:13
专家分:5
注 册:2014-11-11
收藏
得分:0 
回复 5 楼 ghjsmzy
太感谢了!!

每天学得一新我足已!
2014-11-12 19:54
快速回复:事件监视器问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.107747 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved