1

単純なテキストフィールド(付箋のように)をシミュレートするJavaGUIプログラムがあります。閉じるボタンをクリックできるようにしたいのですが、ディレクトリ内の事前定義されたテキストフィールドに自動的に保存されます。

しかし、静的エラーに問題があります。

File: C:\Users\Adel\Code\Javas\popupText.java  [line: 538]
Error: non-static method open() cannot be referenced from a static context

これが私のプログラムの主な方法です:

 public static void main(String args[])
  {
    popupText note = new popupText("Untitled-Notepad");
    note.setSize(600,600);
    note.setLocation(200,200);
    note.setVisible(true);

    WindowListener exitListener = new WindowAdapter() {

      @Override
      public void windowClosing(WindowEvent e) {
        int confirm = JOptionPane.showOptionDialog(null, "Are You Sure to Close Application?", "Exit Confirmation", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, null, null);
        if (confirm == 0) {

          open();   //THIS CAUSES ERROR!!
          System.out.print("Yay I openeed");
          addToStatic();  //just added @ end
          System.exit(0);
        }
      }
    };
    text.append(guts);

    note.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 
    note.addWindowListener(exitListener);

テキスト領域はシンプルでそのように見えます。必要に応じて、その完全なコードも提供できます(現時点では少しフォーマットされていません)。

ここに画像の説明を入力してください

4

2 に答える 2

5

mainですstaticが、openメソッドはそうではありません。

static他のメソッドからのみメソッド(およびフィールド)にアクセスできますstatic

それ以上のコードがなければ、代わりに次のようなものを試すことをお勧めします(メモの方法であるとnote.open()仮定します)open

于 2012-11-30T05:21:52.573 に答える
4

- mainstaticメソッドです。

-staticメソッドは変数またはメソッドにアクセスできませんNon-static

-- open()メソッドは非静的メソッドのようです。.したがって、open()メソッドが定義されているクラスのインスタンスを作成し、 (ドット)演算子を使用してそれにアクセスする必要があると考えられます。

于 2012-11-30T05:27:07.943 に答える