有什么办法可以获取事件的来源吗?我知道event.getSource(),但是,有什么方法可以将其转换为字符串吗?
例如,如果源是按钮button1,则是否有将按钮1赋值给字符串变量的方法?(我正在处理很多按钮,因此,我无法编写if语句)
为清楚起见:
该getSource()
方法返回最初发生事件的对象。您可以使用它从元素中获取某种属性,例如标签内的文本或按钮的名称。
这些是字符串,但是如果您选择采用这种方法,那么我将确保选择所有要调用的组件相同的东西ActionListerner
。
这getActionCommand()
可能会派上用场。您可以在创建组件时设置唯一的“标识符”,并在以后访问它们。
JButton button = new JButton("Button");
button.setActionCommand("1");
JButton button = new JButton("Button");
button.setActionCommand("2");
然后,您以后可以使用任何喜欢的方法比较这些,也可以像这样做一些花哨的事情(因为您说过不想使用if-else语句):
String command = e.getActionCommand();
int i = Integer.parseInt(command);
switch (i) {
case 1: // do something
break;
}
根据Java文档:
返回与此操作关联的命令字符串。该字符串允许“模式”组件根据其状态指定多个命令之一。例如,单个按钮可能会在“显示详细信息”和“隐藏详细信息”之间切换。在每种情况下,源对象和事件都是相同的,但是命令字符串将标识预期的操作。
请记住,我认为这是最好的方法,除非您将一个ActionListerner
用于大量组件。另一个答案指出,您可以使ActionListeners
每个按钮唯一。
希望这对您有所帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句