比如:
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的监听吗,入股可以,改怎么做?
解决方案 »
- Java装饰模式
- ObjectInputStream 中static变量仍可能修改和存储
- 在cmd里面打javac HelloWorld.java 出错
- 常见人争论几个常用Collection类的效率问题,这次我做了个实验,欢迎进来讨论
- SwingWorker 导致 MYSQL java.sql.SQLException
- 请问各位大侠,怎样渲染单个节点???
- 如何实现自定义异常类?请给个例子,比如:
- 一个项目暂给200分如可以的话要多少分给多少分
- visual age for java4.0和Jbiulder7.0,你喜欢用那种?!为什么?!
- 请问j2ee和j2se有什么分别啊?谢谢了
- 不报错 又不出结果 最气人
- 问一个幼稚的问题
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;
}
}