I would like to check on which actionEvent has occurred with ActionEvent e and e.getSource(). Can I use a switch case for this?
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;
}
}
No, you can't. The types you can use in a switch statement is very limited. See The switch Statement.
You can of course just write this as a series of "if" and "else if" statements.
Yes, you can use switch in actionPerformed.
No, you can't use it like you showed it here.
switch only supports primitive types and enums (and String, but only in Java 7 and later).
Another problem is that the case-values values must be compile time constants.
You'll need code like this:
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));
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With