Java アプレットの次のソース コードがあります。
package m2mcom.web;
import m2mcom.entities.AutomatedTelnetClient;
import javax.swing.JApplet;
import javax.swing.SwingUtilities;
import javax.swing.JLabel;
public class Displaytext extends JApplet {
public void init() {
try {
AutomatedTelnetClient telnetClient = new AutomatedTelnetClient();
telnetClient.connect();
StringBuffer text = telnetClient.sendCommand("display gps");
telnetClient.disconnect();
//String answer = "Testing";
String answer = text.toString();
JLabel lbl = new JLabel(answer);
getContentPane().add(lbl);
} catch (Exception e) {
System.err.println("createGUI didn't complete successfully");
}
}
}
.html ファイルを実行すると、空の画面しか表示されません。ただし、StringBuffer を String に変換するのではなく、通常の String を JLabel ("Testing") に挿入すると、画面に "Testing" という単語が表示されます。私もチェックしましたが、StringBuffer テキスト変数には、対応する telnetClient.sendCommand() メソッドの戻り値があります。次のコードは完全に機能します。
package m2mcom.web;
import m2mcom.entities.AutomatedTelnetClient;
import java.util.*;
import java.io.*;
public class Simple {
public static void main(String [] args) {
try {
AutomatedTelnetClient telnetClient = new AutomatedTelnetClient();
telnetClient.connect();
StringBuffer text = telnetClient.sendCommand("display gps");
telnetClient.disconnect();
System.out.println(text.toString());
} catch (Exception e) {
System.err.println("Error");
}
}
}
なぜこれが起こるのですか?私がアプレットのメソッド init() の中にいるという事実と何か関係がありますか? ありがとうございました。