>>789
public class MyFrame extends JFrame {
  public void hoge() {
    // ↓これと
    int flag;
    button1.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        // ↓これとの間でジレンマ
        flag = 1;
      }
    });
  }
}
コンパイルしてみる ⇒flag を final 宣言しろといわれる
final 宣言してみる ⇒flag に代入できませんといわれる、って意味か?

だったら、ひとまずこうしとけ。
public class MyFrame extends JFrame {
  // ↓インスタンス変数化
  private int flag;
  public void hoge() {
    button1.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        flag = 1;
      }
    });
  }
}