1

プログラムを書いているときに、別のクラスから setTextArea() メソッドを呼び出そうとすると、「シンボル メッセージが見つかりません」というメッセージが表示されました。プログラムをコンパイルした後、次のエラー メッセージが表示されます: Uncompilable source code - Erroneous sym type: gui.setTextArea

これが私のコードです:

public class LinkExtractor {

    public static void main(String[] args) throws IOException {
        //Validate.isTrue(args.length == 1, "usage: supply url to fetch");
        String base = "http://uk.ask.com/web?q=";
        String keyword ="flowers";
        String tale="&search=&qsrc=0&o=312&l=dir";
        String url =base+keyword+tale;

        print("Fetching %s...", url);

        Document doc = Jsoup.connect(url).get();
        Elements links = doc.select("a[href]");

        print("\nLinks: (%d)", links.size());
        for (Element link : links) {
            print(" * a: <%s>  (%s)", link.attr("abs:href"), trim(link.text(), 35));
      AssistantGUI gui=new AssistantGUI();

        }
    }

    public static void print(String msg, Object... args) {
      ***//here is the problem line***
        gui.setTextArea(String.format(msg, args));

    }

    private static String trim(String s, int width) {
        if (s.length() > width)
            return s.substring(0, width-1) + ".";
        else
            return s;
    }
}

そして、ここに私の2番目のクラスがあります:

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;

public class AssistantGUI {
JFrame frame= new JFrame("TextArea frame");
JPanel panel=new JPanel();
JTextArea text= new JTextArea("",5,20);


public AssistantGUI(){

frame.add(panel);
panel.add(text);
frame.setSize(250,200);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}
public void setTextArea(String myString){
text.append(myString);
}
public static void main(String[] args){
AssistantGUI gui= new AssistantGUI();

gui.setTextArea("Hello");
}

}

同様の問題に関する多くの投稿を読みましたが、解決策が見つかりませんでした。私にはすべてがうまく見えます。AssistantGUI のインスタンスを作成し、それを使用してメソッド setTextArea() を呼び出していますが、なぜそれが認識されないのですか? 何か案は?私は本当にあなたの助けに感謝します.

4

4 に答える 4