中易网

JAVA中的事件中,能不能用if语句让一个事件可能有多个响应?如以下程序:

答案:2  悬赏:30  
解决时间 2021-02-22 10:38
import javax.swing.*;

import java.awt.*;
import java.awt.event.*;

public class JfvStudy extends JApplet {
//定义界面元素
JButton

b1=new JButton("请输入一个数点击确认");

//for( i=0;i<10;i++)JButton b[i]=new JButton();

JTextField t = new JTextField(20);

static int i=0;
//static String str="";
public void init() {
//重写init方法init() 小程序第一次被创建,初次运行初始化小程序时调用

Container cp = getContentPane();//定义布局
cp.setLayout(new FlowLayout());

ActionListener a = new ActionListener(){
@SuppressWarnings("deprecation")
public void actionPerformed(ActionEvent e){

String s=t.getText();
if(i==0){

i++;
b1.setText("此时i=0");
t.setText("0");
};

if(i==1){
i++;
b1.setText("此时i=1");
t.setText("1");

};
if(i==2){
i=0;
b1.setText("此时i=2");
t.setText("2");
};

}

};

//{//定义事件响应

//int i=0;
// for( i=0;i<16;i++){
cp.add(t);
cp.add(b1);
b1.addActionListener(a);

}

}

这一段程序并不能够正确的按i=0,1,2循环运行,这是为什么?请大家来帮忙解决!谢谢!
最佳答案
import javax.swing.*;

import java.awt.*;
import java.awt.event.*;

public class JfvStudy extends JApplet {
//定义界面元素
JButton

b1=new JButton("请输入一个数点击确认");

//for( i=0;i<10;i++)JButton b[i]=new JButton();

JTextField t = new JTextField(20);

static int i=0;
//static String str="";
public void init() {
//重写init方法init() 小程序第一次被创建,初次运行初始化小程序时调用

Container cp = getContentPane();//定义布局
cp.setLayout(new FlowLayout());

ActionListener a = new ActionListener(){
@SuppressWarnings("deprecation")
public void actionPerformed(ActionEvent e){

String s=t.getText();
if(i==0){

i++;
b1.setText("此时i=0");
t.setText("0");
};

if(i==1){
i++;
b1.setText("此时i=1");
t.setText("1");

};
if(i==2){
i=0;
b1.setText("此时i=2");
t.setText("2");
};

}

};

//{//定义事件响应

//int i=0;
// for( i=0;i<16;i++){
cp.add(t);
cp.add(b1);
b1.addActionListener(a);

}

}
全部回答
你的语句中三个if是顺序执行的,运行结果就是最后一个if的结果。 修改方法是用if...else if...else if结构 代码如下: import javax.swing.*; import java.awt.*; import java.awt.event.*; public class JfvStudy extends JApplet { //定义界面元素 JButton b1=new JButton("请输入一个数点击确认"); //for( i=0;i<10;i++)JButton b[i]=new JButton(); JTextField t = new JTextField(20); static int i=0; //static String str=""; public void init() { //重写init方法init() 小程序第一次被创建,初次运行初始化小程序时调用 Container cp = getContentPane();//定义布局 cp.setLayout(new FlowLayout()); ActionListener a = new ActionListener(){ //@SuppressWarnings("deprecation") //屏蔽了我不支持的属性 public void actionPerformed(ActionEvent e){ String s=t.getText(); if(i==0){ i++; b1.setText("此时i=0"); t.setText("0"); } else if(i==1){ //修改处一 i++; b1.setText("此时i=1"); t.setText("1"); } else if(i==2){ //修改处一 i=0; b1.setText("此时i=2"); t.setText("2"); }; } }; //{//定义事件响应 //int i=0; // for( i=0;i<16;i++){ cp.add(t); cp.add(b1); b1.addActionListener(a); } }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
一种韩国面膜盒子上有很多英文字母的是什么牌
金龙家俱城地址有知道的么?有点事想过去
薄庄子村地址在什么地方,想过去办事
组装手表什么意思
一天到晚的都想吃面条,是不是体内缺什么?
什么是生态式教学体系呢?
喜信粮油这个地址在什么地方,我要处理点事
5000元炒股票如何月挣3000
气压传感器的接线方法!
魔兽世界。求一款抓灵魂兽的插件。稀有NPC警
四岁儿童贫血标准是多少
盐城价格信息网滨海蔡桥站这个地址在什么地方
家里有台式电脑的宽带 怎么能让手机接入WIFI
手机按了关机键后,关机动画结束后突然跳出开
很多人找中介看房前先问价格有没有少是什么心
推荐资讯
土建资料员?安全资料怎么做啊?
黔东南黎平苗侗风情旅行社有限责任公司在哪里
广东教师资格认定中,哪些机构出具的学历证书
为什么有的人管北京电影学院叫北电啊!这么难
如何替别人打圆场。当我的一个朋友跟对方说了
玉兰墙纸(中山大道)地址有知道的么?有点事想
男方提出离婚,但家产是男方争的,但名字是女
陨石的英文名是什么
ios8.3越狱后网速插件名字
有了一份属于自己的工作?英语翻译
中国电信全网通手机卖场NO.J0480地址在哪,我
大塘镇琴琴幼儿园地址在哪,我要去那里办事
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?