当前位置: 代码迷 >> Java相关 >> e.getSource()和isSelected()的区别?
  详细解决方案

e.getSource()和isSelected()的区别?

热度:521   发布时间:2007-04-17 19:25:02.0
e.getSource()和isSelected()的区别?
//处理MenuItem的事件
private class ItemHandler implements ActionListener{
public void actionPerformed(ActionEvent e){
//处理颜色
for(int count=0;count<colorItems.length;count++){
if(colorItems[count].isSelected()){
displayLabel.setForeground(colorValues[count]);
break;
}
}
//处理字体
for(int count=0;count<fonts.length;count++){
if(e.getSource()==fonts[count]){
displayLabel.setFont(new Font(fonts[count].getText(),style,72));
break;
}
repaint();
}
}
}
不知道画红线处的区别,望高手指点?各是什么意思?谢谢!
有谁能帮忙吗?

[此贴子已经被作者于2007-4-17 19:41:49编辑过]

搜索更多相关的解决方案: getSource  isSelected  count  int  colorItems  

----------------解决方案--------------------------------------------------------
e.getSource()表示获得事件的对象源
colorItems[count].isSelected()表示你所选的

----------------解决方案--------------------------------------------------------
e.getSource()只能返回刚才发生事件的是哪个组件,至于那个组件是选中还是没有选中,这是管不了的
因为当你从选中到不选中,还有从不选中到选中的过程,都会生成ActionEvent
但是xxx.isSelected()只是在此选项选中的情况下,才会返回true

这就是区别
----------------解决方案--------------------------------------------------------
先谢谢了,不过上面画红线处好像(e.getSource()==fonts[count])可以用colorItems[count].isSelected())来代替吧???


----------------解决方案--------------------------------------------------------
不可以

如果是e.getSource()==fonts[count],则当它选中和取消选中的时候,都会执行

而如果colorItems[count].isSelected(),则只有它选中的时候才会执行
----------------解决方案--------------------------------------------------------