java中监听方法actionPerformed 如何被回调
如题↑知道actionPerformed方法是被JavaAPI回调的,但不知道过程,有研究过的朋友劳烦讲解一下,不要说的很模糊,我也知道是被回调的,但不知道java是怎么...
如题↑
知道actionPerformed 方法是被Java API 回调的,但不知道过程,有研究过的朋友劳烦讲解一下,不要说的很模糊,我也知道是被回调的,但不知道java是怎么用代码回调的,比如说点击jbutton,jbutton的监听器对象实现了ActionListener接口,然后,ActionListener怎么回调actionPerformed 的,
请说明代码里怎么实现的,说理论的免了,书上说的比你说的好多了。 展开
知道actionPerformed 方法是被Java API 回调的,但不知道过程,有研究过的朋友劳烦讲解一下,不要说的很模糊,我也知道是被回调的,但不知道java是怎么用代码回调的,比如说点击jbutton,jbutton的监听器对象实现了ActionListener接口,然后,ActionListener怎么回调actionPerformed 的,
请说明代码里怎么实现的,说理论的免了,书上说的比你说的好多了。 展开
展开全部
添加监听的控件里有一个EventListenerList,当你添加监听就把这个监听对象加入到这个list中了,然后当用户点击按钮,控件就会把在这个list中的所有监听对象一个一个通知到位,回调actionPerformed 就是通知的方式,告诉各个监听现在有事件发生。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
jbutton 里有个ActionListener对象的引用,当你点击它时候,系统会处理XXXXX 自动调用 jbutton 的某个方法,当然也会调用ActionListener对象的相应方法,即你自己实现的方法
如:
public interface XXlistener{
void youDo();
}
public class JButton{
private XXlistener xxl;
public void click(){
//这个是系统自动调用的,不关你事;
xxl.youDo();
}
}
如:
public interface XXlistener{
void youDo();
}
public class JButton{
private XXlistener xxl;
public void click(){
//这个是系统自动调用的,不关你事;
xxl.youDo();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这么说吧,JPanel没有ActonEvent事件吧,看我下面的类就可以。
public class MyPanel extends JPanel{
Vector<ActionListener>listeners;
public MyPanel(){
//...
listeners=new Vector<ActionListener>();
}
public void addActionEvent(ActionListener listener){
if(listener!=null){ listeners.add(listener); }
}
public void removeActonListener(ActionListener listener){
if(listener!=null){ listeners.remove(listener); }
}
private void fireActionListener(JComponent component){
ActionEvent e=new ActionEvent(component,ActionEvent.ACTION_PERFORMED,component.getText());
for(ActionListener listener:listeners){
listener.actionPerformed(e);
}
}
//..............
private void myOtherMethod(){
//...............
fireActionEvent(某组件);
}
}
public class MyPanel extends JPanel{
Vector<ActionListener>listeners;
public MyPanel(){
//...
listeners=new Vector<ActionListener>();
}
public void addActionEvent(ActionListener listener){
if(listener!=null){ listeners.add(listener); }
}
public void removeActonListener(ActionListener listener){
if(listener!=null){ listeners.remove(listener); }
}
private void fireActionListener(JComponent component){
ActionEvent e=new ActionEvent(component,ActionEvent.ACTION_PERFORMED,component.getText());
for(ActionListener listener:listeners){
listener.actionPerformed(e);
}
}
//..............
private void myOtherMethod(){
//...............
fireActionEvent(某组件);
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询