Java 如何在一个类(JPanel)中获得对刷新方法的正确引用,以便可以从另一个类中的方法调用它?

Java 如何在一个类(JPanel)中获得对刷新方法的正确引用,以便可以从另一个类中的方法调用它?,java,swing,jframe,jpanel,jmenu,Java,Swing,Jframe,Jpanel,Jmenu,我的JFrame bulid是这样的: public class AplicationGui extends JFrame{ public AplicationGui() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); contentPane = new JPanel(); contentPane.setLayout(new BorderLayout(0, 0)); setContentPane(conte

我的JFrame bulid是这样的:

public class AplicationGui extends JFrame{

  public AplicationGui() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    contentPane = new JPanel();
    contentPane.setLayout(new BorderLayout(0, 0));
    setContentPane(contentPane);

    panel = new RaportPanel();
    contentPane.add(panel, BorderLayout.CENTER);


    Menu menu =new Menu();
    setJMenuBar(menu);
  }


}
fooDialog=new FooDialog();
fooDialog.setDefaultCloseOperation(FooDialog.DISPOSE_ON_CLOSE);
fooDialog.setModalityType(FooDialog.ModalityType.APPLICATION_MODAL);
fooDialog.setVisible(true);
RaportPanel具有刷新其内容的方法。 在菜单中,我有一个动作监听器,它调用JDialog-FooDialog,如下所示:

public class AplicationGui extends JFrame{

  public AplicationGui() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    contentPane = new JPanel();
    contentPane.setLayout(new BorderLayout(0, 0));
    setContentPane(contentPane);

    panel = new RaportPanel();
    contentPane.add(panel, BorderLayout.CENTER);


    Menu menu =new Menu();
    setJMenuBar(menu);
  }


}
fooDialog=new FooDialog();
fooDialog.setDefaultCloseOperation(FooDialog.DISPOSE_ON_CLOSE);
fooDialog.setModalityType(FooDialog.ModalityType.APPLICATION_MODAL);
fooDialog.setVisible(true);

当FooDialog关闭时,我希望FooDialog从RaportPanel调用一个刷新方法。如何获得对该刷新方法的正确引用,以便可以从FoodDialog中的closing方法调用它?也许我应该重新构建所有这些,这样它才能更好地工作?我对Java非常陌生,不知道如何解决它。我很确定有一个简单的方法可以做到这一点。如有任何建议和指点,我将不胜感激

您可以使用侦听器模式执行类似的操作。 Impl。用于关闭对话框的侦听器的接口。 让类打开一个对话框。打开此接口并将其注册到对话框中。 在对话框类中提供一个register侦听器方法,保存给定的侦听器。当对话框关闭时,通知所有听众

这是一种普遍做法。值得注意的是,这已经包含在SwingAPI中,我目前还不知道

下面是一个使用类名的小示例;)

公共接口对话框CloseListener{
公共无效对话框关闭();
}
公共类RaportPanel实现DialogCloseListener{
...
fooDialog=新建fooDialog();
fooDialog.setDefaultCloseOperation(fooDialog.DISPOSE\u ON\u CLOSE);
fooDialog.setModalityType(fooDialog.ModalityType.APPLICATION_MODAL);
fooDialog.setVisible(true);

fooDialog.addDialogCloseListener(this);//您可以使用侦听器模式执行类似的操作。 一个用于关闭对话框的侦听器的接口。 让打开对话框的类执行此接口并将其注册到对话框。 在对话框类中提供一个register listener方法,您可以在其中保存给定的侦听器。当对话框关闭时,通知所有侦听器

这是一种通用方法,值得注意的是,它已经包含在SwingAPI中,我现在还不知道

下面是一个使用类名的小示例;)

公共接口对话框CloseListener{
公共无效对话框关闭();
}
公共类RaportPanel实现DialogCloseListener{
...
fooDialog=新建fooDialog();
fooDialog.setDefaultCloseOperation(fooDialog.DISPOSE\u ON\u CLOSE);
fooDialog.setModalityType(fooDialog.ModalityType.APPLICATION_MODAL);
fooDialog.setVisible(true);
fooDialog.addDialogCloseListener(此)//