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



这是我的情况:

我有一堂课:

卡尔斯 :

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 

}

和类弹出窗口.java

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

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

桂.java :- 像:p rivate面板=新面板一样持有UI-save()//刷新 UI like for (String str : arraylist){ this.panel.addcontent(str))

弹出框.java :贵 ui = 新贵();

将 sth. 添加到数组列表并调用方法 ui.save();

<--如果我做ui.save(),它不会改变UI,我看到它会改变新类的UI。>

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

"我必须添加公共静态吗?到所有 GUI 元素?

不。把这个肮脏的想法从你的脑海中抹去。

相反,我会编写代码来提供GUI实现的业务interface。您可以将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();
    }
}

相关内容

  • 没有找到相关文章

最新更新