Fre*_*red 1 java events action
我想检查发生了哪个actionEvent ActionEvent e和e.getSource().我可以使用开关盒吗?
public void actionPerformed(ActionEvent e){
switch(e.getSource()){
case radius:
double r = validate(radius.getText());
break;
case height:
double h = validate(height.getText());
break;
case out:
out.setText(String.valueOf(h*r));
break;
}
}
Run Code Online (Sandbox Code Playgroud)
是的,你可以使用开关actionPerformed.
不,你不能像你在这里展示的那样使用它.
switch仅支持原始类型和enums(并且String仅在Java 7及更高版本中支持).
另一个问题是case-values值必须是编译时常量.
你需要这样的代码:
public void actionPerformed(ActionEvent e){
if (e.getSource() == radius) {
double r = validate(radius.getText());
else if (e.getSource() == height) {
double h = validate(height.getText());
else if (e.getSource() == out) {
out.setText(String.valueOf(h*r));
}
}
Run Code Online (Sandbox Code Playgroud)