1

我有一个模拟简单文本字段的 Java GUI 程序(就像便笺一样)。我希望能够单击关闭按钮,它会自动将其保存到目录中的预定义文本字段中。

但是我遇到了静态错误的问题:

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

mainstatic,但open方法不是。

您只能static从其他方法访问方法(和字段)static

没有进一步的代码,我建议你尝试类似的东西note.open()(假设open是一种注意方法)

于 2012-11-30T05:21:52.573 回答
4

- main是一种static方法。

-方法不能访问变量或static方法。Non-static

- open()方法似乎是一种非静态方法。所以它认为你需要创建一个定义了 open() 方法的类的实例,然后使用.(dot) 运算符访问它。

于 2012-11-30T05:27:07.943 回答