Java:在其他类中调用方法,逻辑问题

时间:2014-04-07 11:36:13

标签: java swing user-interface

这是我的情况:

我有一节课:

Calss:

Gui.java - 包含GUI

save(){//here we change the GUI which is called in the Gui.java, depends on the arraylist, after that we refresh the GUI 

}

和一个类popup.java

okbtn(){//here we add sth in the arraylist and call the methode save in the class GUI}

如果我打开弹出框并单击按钮确定,则调用okbtn()。 但是如何更改特定GUI.java的UI。

Gui.java: - 像以下一样用户界面:私人面板=新面板 -save()//刷新UI,如(String str:arraylist){this.panel.addcontent(str))

Popupbox.java: Gui ui = new Gui();

添加某事。到一个arraylist并调用methode ui.save();

< - 如果我执行ui.save()它不会改变UI,我认为它改变了新类的UI。

我是否必须为所有GUI元素添加公共静态? 或者什么是最好的方式

1 个答案:

答案 0 :(得分:1)

  

"我是否需要添加公共静态?所有的GUI元素?:

没有。把那些肮脏的想法从脑海中解脱出来。

相反,我会编写代码来提供interface实现的业务GUI。并且您可以将GUI的实例传递给Popup只需实现接口的方法,然后将接口的实例(即GUI)传递给Popup类。像

这样的东西
public interface SomeInterface {
    public void save();
}

public class GUI implements SomeInterface {
    Popup popup = new Popup(this);

    @Override
    public void save() {
        // save
    }
}

public class Popup ...{
    private SomeInterface someInf;

    public Popup(SomeInterface someInf) {
        this.someInf = someInf;
    }
    ...
    public void actionPerformed(ActionEvent e) {
        someInf.save();
    }
}