这是一个能做加减乘除的java小程序,点击计算后,窗口马上消失,看不到结果,请问是为什么? 20
importjava.awt.*;importjava.awt.event.*;publicclassJisuanqiimplementsActionListener{F...
import java.awt.*;
import java.awt.event.*;
public class Jisuanqi implements ActionListener
{
Frame f;
Panel p1,p2,p3;
Label lb1,lb2,lb3;
TextField tf1,tf2,tf3;
Button btn1,btn2;
CheckboxGroup cbg;
Checkbox cbg1,cbg2,cbg3,cbg4;
double Jisuanqi;
public static void main(String args[])
{
Jisuanqi jisuanqi=new Jisuanqi();
jisuanqi.go();
}
public void go()
{
f=new Frame("计算器");
f.setSize(400,180);
p1=new Panel();
p2=new Panel();
p3=new Panel();
tf1=new TextField(10);
lb1=new Label("操作数1:");
lb2=new Label("结果:");
tf3=new TextField(10);
lb3=new Label("操作数2:");
btn1=new Button("计算:");
btn2=new Button("结束:");
p1.add(lb1);
p1.add(tf1);
p1.add(lb3);
p1.add(tf3);
cbg=new CheckboxGroup();
cbg1=new Checkbox("加",true,cbg);
cbg2=new Checkbox("减",true,cbg);
cbg3=new Checkbox("乘",true,cbg);
cbg4=new Checkbox("除",true,cbg);
tf2=new TextField(10);
p2.add(cbg1);
p2.add(cbg2);
p2.add(cbg3);
p2.add(cbg4);
p2.add(lb2);
p2.add(tf2);
p3.add(btn1);
p3.add(btn2);
btn1.addActionListener(this);
btn2.addActionListener(this);
f.add(p1,"North");
f.add(p2,"Center");
f.add(p3,"South");
f.setVisible(true);
}
public void actionPerformed(ActionEvent ae)
{
String yy,ll,total;
double ab,cd;
yy=ae.getActionCommand();
if(yy.equals("计算"))
{
yy=tf1.getText();
ll=tf3.getText();
ab=Double.parseDouble(yy);
cd=Double.parseDouble(ll);
if(cbg1.getState()==true);
Jisuanqi=ab+cd;
if(cbg2.getState()==true);
Jisuanqi=ab-cd;
if(cbg3.getState()==true);
Jisuanqi=ab*cd;
if(cbg4.getState()==true);
Jisuanqi=ab/cd;
total=Double.toString(Jisuanqi);
tf2.setText(total);
}
else
{
System.exit(0);
}
}
} 展开
import java.awt.event.*;
public class Jisuanqi implements ActionListener
{
Frame f;
Panel p1,p2,p3;
Label lb1,lb2,lb3;
TextField tf1,tf2,tf3;
Button btn1,btn2;
CheckboxGroup cbg;
Checkbox cbg1,cbg2,cbg3,cbg4;
double Jisuanqi;
public static void main(String args[])
{
Jisuanqi jisuanqi=new Jisuanqi();
jisuanqi.go();
}
public void go()
{
f=new Frame("计算器");
f.setSize(400,180);
p1=new Panel();
p2=new Panel();
p3=new Panel();
tf1=new TextField(10);
lb1=new Label("操作数1:");
lb2=new Label("结果:");
tf3=new TextField(10);
lb3=new Label("操作数2:");
btn1=new Button("计算:");
btn2=new Button("结束:");
p1.add(lb1);
p1.add(tf1);
p1.add(lb3);
p1.add(tf3);
cbg=new CheckboxGroup();
cbg1=new Checkbox("加",true,cbg);
cbg2=new Checkbox("减",true,cbg);
cbg3=new Checkbox("乘",true,cbg);
cbg4=new Checkbox("除",true,cbg);
tf2=new TextField(10);
p2.add(cbg1);
p2.add(cbg2);
p2.add(cbg3);
p2.add(cbg4);
p2.add(lb2);
p2.add(tf2);
p3.add(btn1);
p3.add(btn2);
btn1.addActionListener(this);
btn2.addActionListener(this);
f.add(p1,"North");
f.add(p2,"Center");
f.add(p3,"South");
f.setVisible(true);
}
public void actionPerformed(ActionEvent ae)
{
String yy,ll,total;
double ab,cd;
yy=ae.getActionCommand();
if(yy.equals("计算"))
{
yy=tf1.getText();
ll=tf3.getText();
ab=Double.parseDouble(yy);
cd=Double.parseDouble(ll);
if(cbg1.getState()==true);
Jisuanqi=ab+cd;
if(cbg2.getState()==true);
Jisuanqi=ab-cd;
if(cbg3.getState()==true);
Jisuanqi=ab*cd;
if(cbg4.getState()==true);
Jisuanqi=ab/cd;
total=Double.toString(Jisuanqi);
tf2.setText(total);
}
else
{
System.exit(0);
}
}
} 展开
展开全部
"计算:".equals("计算")可以使用字符串仅仅比较前缀的方法也可以达到
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我运行了一下,第二个计算没有冒号,而且建议你用ae.getSource()来做
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
“计算:”不等于“计算”,所以,执行system.exit(0)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在main方法的最后加入代码:
BufferedReader br = new BufferedReader(new InputStreamReader( System.in ) ) ;
br.readLine( );
BufferedReader br = new BufferedReader(new InputStreamReader( System.in ) ) ;
br.readLine( );
追问
加了,但是没起作用,还是自己关掉了
追答
我好久没写了.应该是有一个读入操作在不停的读入控制台的读入,这样窗口才不会自己关闭.上网搜搜吧.
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
"计算:".equals("计算") == false 所以 System.exit(0)
追问
那该怎么改呢?
追答
btn1=new Button("计算");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询