关于if和swtch的流程控制问题!

redcom 2003-09-27 05:05:17
前面定义了n=0
void jButton13_actionPerformed(ActionEvent e) {
if(mainFormP.isShowing()) { n=1;}
if(note1P1.isShowing()) { n=2;}
if(shortInf1P1.isShowing()){ n=3;}
if(phoneSet1P1.isShowing()){ n=4;}
if(tool1P1.isShowing()) { n=5;}
if(call1P1.isShowing()) { n=6;}
switch(n){
case 1:
cardLayout1.show(screenP,"note1P1");
break ;
case 2:
cardLayout1.show(screenP,"shortInf1P1");
break ;
case 3:
cardLayout1.show(screenP,"phoneSet1P1");
break ;
case 4:
cardLayout1.show(screenP,"tool1P1");
break ;
case 5:
cardLayout1.show(screenP,"call1P1");
break ;
case 6:
cardLayout1.show(screenP,"inputPhoneP1");
break ;
default :
cardLayout1.show(screenP,"mainFormP");
}
}
就是实现手机的“翻页键”的功能!

问题:
为什么总是只执行n=2,4,6,也就是间隔执行的,缺省的default也不执行,执行的却是n=6,应该是顺着出现呀!
但是如果把那几个if 语句放到别的按钮下面执行就是顺序出现!但是那样要按两次键。
我猜应该是if语句和switch语句的执行流程问题:是先把所有是if执行完再执行switch
还是执行一个if就去执行switch,在回来执行下一 条if,然后执行switch,如此循环
敬请各路大哥指点,替小弟解决这个问题!要是我问题没问清楚就请看看你的手机的
“下翻键”的功能,它有一个判断翻页功能!小弟先谢谢了!

还有一个问题就是
void jButton2_actionPerformed(Event e){
调用jButton1_actionPerformed(Event e)语句
怎么调用??????????????????
.......
}


...全文
140 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
vwee 2003-09-28
  • 打赏
  • 举报
回复
if 条件没有同时成立的,因为我如果把那几个if 放到另外一 个按钮中去就没有任何问题了
==========================================================================

如果是这样的话,那肯定是因为你的这个键的问题了,它同时满足了一个以上的条件。
另外,如果要调用其他的键的事件,直接引用不就好?
void jButton13_actionPerformed(ActionEvent e) {
另外一个按钮事件(){}
}
redcom 2003-09-28
  • 打赏
  • 举报
回复
to vwee(NULL)

这个键应该没问题,把那几个if拿走就没问题,那过来就有问题,如果我事先把note1P1设置为
isshowing,也就是n 设置为2,再点这个键,就出现n=3的情况,再点就是5,再点就是6,这当然是
if在里面的情况,你说怪不怪?
redcom 2003-09-28
  • 打赏
  • 举报
回复
顶一下撒!大哥们!
redcom 2003-09-27
  • 打赏
  • 举报
回复
你们说的那几个方法我都试了,还是那个问题呀!帮帮忙,在想想办法!
redcom 2003-09-27
  • 打赏
  • 举报
回复
n 定义为全局变量,定义的时候已经赋值为0。
if 条件没有同时成立的,因为我如果把那几个if 放到另外一 个按钮中去就没有任何问题了
所以我想把那几个if 放到另外的按钮中去,而在这个按钮中调用它
if...else...我也用过,结果还是2,4,6,连那个default都不能执行
我认为是程序执行的流程不是我们想象的顺序执行!还请大家赐教!
调用按钮事件是这样吗?jButton1_actionPerformed(null),不穿参数
我就是要用n值嘛!

vwee 2003-09-27
  • 打赏
  • 举报
回复
其实把case里的方法全部放到if的语句里不就好了?
还少作一些判断。另外 如果只执行2。4。6的话
肯定是重复了,因为if语句1-6全部都执行了吧
liaomingxue 2003-09-27
  • 打赏
  • 举报
回复
1。 n有初始值吗?这要注意哟,不然会出错的
2。if的条件中有同时成立的吗?如果有,就肯定会有这样的问题。
那么就要改为if...else...了。
liaomingxue 2003-09-27
  • 打赏
  • 举报
回复
先解决第二个问题,如果你不需要传递什么信息,而只需要执行一下的话,
可以这样:
jButton1_actionPerformed(null)
redcom 2003-09-27
  • 打赏
  • 举报
回复
怎么没有人来顶我呀?大哥们

51,407

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧