赤裸特工完整百度网盘:java中的switch问题,难到说只能接收int型数据吗?

来源:百度文库 编辑:高考问答 时间:2024/05/03 06:45:27
我做的一个类似记事本的编辑下拉菜单;初学,不知道初了用if(e.getSource){} 以外用switch可不可以获取用户点了哪项;
这个e.getSource()用的好像不对,我也知道switch只能接收 int 型数据,
但是不知道怎么办;
class edititemListener implements ActionListener{

public void actionPerformed(ActionEvent e) {
switch (e.getSource()){
case edititem[0]: case qmenu[0]:
case edititem[1]: case qmenu[1]:
case edititem[2]: case qmenu[2]:
case edititem[3]: case qmenu[3]:
case edititem[4]: case qmenu[4]:
case edititem[5]: case qmenu[9]:
}
}
}
如果不用 switch case 就只能用 if 语句实现,可是那样的话太麻烦了,怎么才能用switch接收到点的是哪个菜单项呢?

给JMenuItem设置整型(但是是字符串例如"1")的ActionCommand就可以了,用Integer.parseInt(e.getActionCommand())

其实除了int类型,switch还能接受char类型的,其他类型我就不太清楚了。
另外,e.getSource()返回的是一个Object类型的对象,不是基本类型,所以是不能用switch来判断的,只能用if了,不过其实用if也不是太麻烦,一点起码的耐心是要有的吧。
e.getSource()的用法为:
if (e.getSource() == button1)
……
……

button1是一个按钮。
其他组件也类似。