Prepari due file: Finestra1 e Finestra2.
Questo è grossomodo il codice di Finestra1:
codice:
public class Finestra1 extends JFrame {
   private JButton jb;
   public Finestra1() {
      ...
      jb = new JButton("Apri altra finestra");
      jp.addActionListener( new ActionListener() {
         apriAltraFinestra();
      });
      ...
      show();
   }

   private void apriAltraFinestra() {
      Finestra2 f2 = new Finestra2(this);
   }

   public static void main(String [] args) { Finestra1 f = new Finestra1(); }
}
Questo il codice (sempre grossomodo) di Finestra2:
codice:
public class Finestra2 extends JFrame {
   private Finestra1 primaFinestra;
   private JButton modifica
   ...
   public Finestra2(Finestra1 primaFinestra) {
      ...
      this.prinaFinestra = primaFinestra;
      ...
      modifica = new JButton("Modifica");
      modifica.addActionListener( new ActionListener() {
         modificaPrimaFinestra();
      });
      show();
   }

   private void modificaPrimaFinestra() {
      primaFinestra.suoMetodo();  // Puoi richiamare i metodi di Finestra1 sull'oggetto
   }
}
Ciao.