首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

求帮忙看下为何这个程序中按钮不响应事件

2013-10-22 
求帮忙看下为什么这个程序中按钮不响应事件!import java.awt.*import javax.swing.*import java.awt.eve

求帮忙看下为什么这个程序中按钮不响应事件!
import java.awt.*;

import javax.swing.*;
import java.awt.event.*;   //做的事一个简单的计算器程序,有计算器的界面
//但是还没有完全实现功能的时候就发现给按钮添加了事件响应但按按钮的时候去没有反应,请帮忙看下吧。
public class window {
 JFrame aq;
 JPanel all;
 JPanel al2;
 int shu1=0;
 int shu2=0;
 String res="0",jj="0";
JButton a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16;  //16个计算器按钮
     JTextField t1;
     public static void main(String args[])
     {
    
     window ll=new window();   //驱动程序
     ll.go();
     }
    

     public void go()
     {
     ActionListener ajj=new ActionListener() {    //添加事件响应
   
   @Override
   public void actionPerformed(ActionEvent e) {
   
   String rn=e.getActionCommand();
   if(rn=="0")    //如果按下零号键,则讲文本框里的文字设置为SASAG
   //可是点击零号键却没有反应
   {
   
   res=(shu1+shu2)+"";
   shu2=0;
   jj=shu2+"";
   t1.setText("sasaga");
   
   }
   else if(rn=="1")
   {
   shu1=shu2;
   shu2=1;
   jj=shu2+"";
   t1.setText(jj);
   }
   else if(rn=="2")
   {
   shu1=shu2;
   shu2=2;
   }
   else if(rn=="3")
   {
   shu1=shu2;
   shu2=3;
   }
   else if(rn=="4")
   {
   shu1=shu2;
   shu2=4;
   }
   elseif(rn=="5")
   {
   shu1=shu2;
   shu2=5;
   }
   else if(rn=="6")
   {
   shu1=shu2;
   shu2=6;}
   
   else if(rn=="7")
   {
   shu1=shu2;
   shu2=7;
   }
   elseif(rn=="8")
   {
   shu1=shu2;
   shu2=8;
   }
   else if(rn=="9")
   {
   shu1=shu2;
   shu2=9;
   }
   else if(rn=="+")
   {
   res=(shu1+shu2)+"";
   shu1=shu1+shu2;
   t1.setText(res);
   }
   else if(rn=="-")
   {}
   else if(rn=="*")
   {}
   else if(rn=="/")
   {}
   else if(rn==".")
   {}
   else
   {}
   
   
   }
     };
     JPanel all=new JPanel();
     JPanel al2=new JPanel();
     JTextField t1=new  JTextField("0",30);
     JFrame aq=new JFrame("ssss");
     a1=new JButton("0");
     a2=new JButton("1");
     a3=new JButton("2");
     a4=new JButton("3");
     a5=new JButton("4");
     a6=new JButton("5");
     a7=new JButton("6");
     a8=new JButton("7");
     a9=new JButton("8");
     a10=new JButton("9");
     a11=new JButton("+");
     a12=new JButton("-");
     a13=new JButton("*");
     a14=new JButton("/"); 
     a15=new JButton(".");
     a16=new JButton("=");
     
     Container af=aq.getContentPane();
     af.setLayout(new GridLayout(2,1));
     all.add(t1);
     al2.setLayout(new GridLayout(4,4));
     al2.add(a8);
     al2.add(a9);


     al2.add(a10);
     al2.add(a11);
     al2.add(a5);
     al2.add(a6);
     al2.add(a7);
     al2.add(a12);
     al2.add(a2);
     al2.add(a3);
     al2.add(a4);
     al2.add(a13);
     al2.add(a1);
     al2.add(a15);
     al2.add(a16);
     al2.add(a14);
         a1.addActionListener(ajj);
         a2.addActionListener(ajj);
         a3.addActionListener(ajj);
         a4.addActionListener(ajj);
         a5.addActionListener(ajj);
         a6.addActionListener(ajj);
         a7.addActionListener(ajj);
         a8.addActionListener(ajj);
         a9.addActionListener(ajj);
         a10.addActionListener(ajj);
         a11.addActionListener(ajj);
         a12.addActionListener(ajj);
         a13.addActionListener(ajj);
         a14.addActionListener(ajj);
         a15.addActionListener(ajj);
         a16.addActionListener(ajj);
     af.add(all);
     af.add(al2);
    
      aq.pack();
      aq.setVisible(true);
    
    
};
    
     
     
     };
     
 

[解决办法]

引用:
!!!求帮忙 啊!!

楼主如使用debug的话检测一下就知道其实是有反应的。
你的错误不在于监听,而是在于
if(rn=="0") 
这样的判断,0是字符串
字符串比较的话得改成
if (rn .equals( "0"))
[解决办法]
抛异常了。
帮你改了下,注意类名要大写,Window


import java.awt.*;

import javax.swing.*;
import java.awt.event.*; //做的事一个简单的计算器程序,有计算器的界面
//但是还没有完全实现功能的时候就发现给按钮添加了事件响应但按按钮的时候去没有反应,请帮忙看下吧。

public class Window {
JFrame aq;
JPanel all;
JPanel al2;
int shu1 = 0;
int shu2 = 0;
String res = "0", jj = "0";
JButton a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
a16; // 16个计算器按钮
JTextField t1;

public static void main(String args[]) {
Window ll = new Window(); // 驱动程序
}

public Window(){
JPanel all = new JPanel();
JPanel al2 = new JPanel();
final JTextField t1 = new JTextField("0", 30);
JFrame aq = new JFrame("ssss");
a1 = new JButton("0");
a2 = new JButton("1");
a3 = new JButton("2");
a4 = new JButton("3");
a5 = new JButton("4");
a6 = new JButton("5");
a7 = new JButton("6");
a8 = new JButton("7");
a9 = new JButton("8");
a10 = new JButton("9");
a11 = new JButton("+");
a12 = new JButton("-");
a13 = new JButton("*");
a14 = new JButton("/");
a15 = new JButton(".");
a16 = new JButton("=");

Container af = aq.getContentPane();
af.setLayout(new GridLayout(2, 1));
all.add(t1);
al2.setLayout(new GridLayout(4, 4));
al2.add(a8);
al2.add(a9);
al2.add(a10);
al2.add(a11);
al2.add(a5);
al2.add(a6);
al2.add(a7);
al2.add(a12);
al2.add(a2);
al2.add(a3);
al2.add(a4);
al2.add(a13);
al2.add(a1);
al2.add(a15);
al2.add(a16);
al2.add(a14);
ActionListener ajj = new ActionListener() { // 添加事件响应

@Override
public void actionPerformed(ActionEvent e) {


String rn = e.getActionCommand();
System.out.println(rn);
if (rn == "0") // 如果按下零号键,则讲文本框里的文字设置为SASAG
// 可是点击零号键却没有反应
{

res = (shu1 + shu2) + "";
shu2 = 0;
jj = shu2 + "";
t1.setText("sasaga");

} else if (rn == "1") {
shu1 = shu2;
shu2 = 1;
jj = shu2 + "";
t1.setText(jj);
} else if (rn == "2") {
shu1 = shu2;
shu2 = 2;
} else if (rn == "3") {
shu1 = shu2;
shu2 = 3;
} else if (rn == "4") {
shu1 = shu2;
shu2 = 4;
} else if (rn == "5") {
shu1 = shu2;
shu2 = 5;
} else if (rn == "6") {
shu1 = shu2;
shu2 = 6;
}

else if (rn == "7") {
shu1 = shu2;
shu2 = 7;
} else if (rn == "8") {
shu1 = shu2;
shu2 = 8;
} else if (rn == "9") {
shu1 = shu2;
shu2 = 9;
} else if (rn == "+") {
res = (shu1 + shu2) + "";
shu1 = shu1 + shu2;
t1.setText(res);
} else if (rn == "-") {
} else if (rn == "*") {
} else if (rn == "/") {
} else if (rn == ".") {
} else {
}

}
};
a1.addActionListener(ajj);
a2.addActionListener(ajj);
a3.addActionListener(ajj);
a4.addActionListener(ajj);
a5.addActionListener(ajj);
a6.addActionListener(ajj);
a7.addActionListener(ajj);
a8.addActionListener(ajj);
a9.addActionListener(ajj);
a10.addActionListener(ajj);
a11.addActionListener(ajj);
a12.addActionListener(ajj);
a13.addActionListener(ajj);
a14.addActionListener(ajj);
a15.addActionListener(ajj);
a16.addActionListener(ajj);
af.add(all);
af.add(al2);

aq.pack();
aq.setVisible(true);
}
};

热点排行