比如:
class A extends JPanel {
private JSpinner sp;
private ChangeListener contentChangeListener;
A() {
sp.addChangeListener(contentChangeListener);
}
public ChangeListener getContentChangeListener() {
return this.contentChangeListener;
}
public void setContentChangeListener(ChanegListener con) {
this.contentChangeListener = con;
}class B {
B() {
ChangeListener con = new ChangeListener() {
public void stateChanged(ChangeEvent e) {
//doNothing.
}
};
}
}
请问可以从B中设置A的sp的监听吗,入股可以,改怎么做?
class A extends JPanel {
private JSpinner sp;
private ChangeListener contentChangeListener;
A() {
sp.addChangeListener(contentChangeListener);
}
public ChangeListener getContentChangeListener() {
return this.contentChangeListener;
}
public void setContentChangeListener(ChanegListener con) {
this.contentChangeListener = con;
}class B {
B() {
ChangeListener con = new ChangeListener() {
public void stateChanged(ChangeEvent e) {
//doNothing.
}
};
}
}
请问可以从B中设置A的sp的监听吗,入股可以,改怎么做?
2注册监听器
class A extends JPanel {
private JSpinner sp;
private ChangeListener contentChangeListener;
A() {
sp.addChangeListener(contentChangeListener);
}
public ChangeListener getContentChangeListener() {
return this.contentChangeListener;
}
public void setContentChangeListener(ChanegListener con) {
// this.contentChangeListener = con;
this.contentChangeListener = new B().getChangeListener();
}class B {
pirvate ChangeListener con;
public B() {
con = new ChangeListener() {
public void stateChanged(ChangeEvent e) {
//doNothing.
}
} public ChangeListener getChangeListener() {
retrun this.con;
}
}如果这个监听器在 class B 的实例没有任何用处,则可以考虑使用类的静态方法
class A extends JPanel {
private JSpinner sp;
private ChangeListener contentChangeListener;
A() {
sp.addChangeListener(contentChangeListener);
}
public ChangeListener getContentChangeListener() {
return this.contentChangeListener;
}
public void setContentChangeListener(ChanegListener con) {
// this.contentChangeListener = con;
this.contentChangeListener = B.getChangeListener();
}class B {
public B() { }
public static ChangeListener getChangeListener() {
ChangeListener con = new ChangeListener() {
public void stateChanged(ChangeEvent e) {
//doNothing.
}
retrun con;
}
}