是否有更简洁/更简单的方法使用侦听器的getSource()执行if-then-else语句?
我有一个FocusListener我需要突出显示触发FocusListener的JTextField中的文本
private class calculator implements FocusListener{
public void focusGained(FocusEvent evt) {
if(evt.getSource()==txtInitialRead ){
txtInitialRead.selectAll();
}
我的问题是我有很多JTextFields,需要在FocusListener中为每一个创建一个if语句。有没有简单的方法呢?切换分支不适用于此对象类型。
当然这不是什么大不了的事,我认为必须有一个更简洁的方法来做到这一点。
谢谢!
答案 0 :(得分:3)
只需突出显示当前组件:
@Override
public void focusGained(FocusEvent evt) {
JTextComponent tComponent = (JTextComponent) evt.getSource();
tComponent.selectAll();
}
具有此侦听器的任何JTextField(或其他文本组件)将在/获得焦点时选择所有文本。
不要将此侦听器添加到非文本组件中,否则您可能会抛出类强制转换异常。