我的java程序有点问题。我想使用Observer来同步两个GUI。 但我不能同步JComponent / JButton元素。例如:
我有一个实现Observer-Class的GUI-Class:
public class GUI extends JFrame implements Observer
我有第二个“GUI”类,它扩展了JButton-Class并对特定的Button-Element进行了更改。
public class Karte extends JButton{
...
this.setEnabled(false);
...
如何通过Observable同步此按钮?我已经尝试在这个类中使用“extends Observable”,但是“setEnabled()”方法对于JButton-Class是显式的,它不是Observable!
有人可以帮忙吗?
感谢。
答案 0 :(得分:1)
一种方法是让Karte 拥有一个Observable(而不是一个)。
public class Karte extends JButton{
final Observable obs = new Observable() {
// override as needed here
}
// ...
Observable asObservable() { return obs; }
}
myKarte.asObservable().addObserver(myGUI);
有利于作文优于继承,这被认为是一种良好的做法,但有时候,无论你是否愿意,这都是必要的!