0

可能重复:
HTML 不显示我的带有 JLabel 的 Java 小程序

我有 Java Applet 的下一个代码源:

package m2mcom.web;
import m2mcom.entities.AutomatedTelnetClient;
import javax.swing.JApplet;
import javax.swing.SwingUtilities;
import javax.swing.JLabel;

public class Displaytext extends JApplet {
//Called when this applet is loaded into the browser.
public void init() {
    //Execute a job on the event-dispatching thread; creating this applet's GUI.
    try {
        SwingUtilities.invokeAndWait(new Runnable() {
            public void run() {
                AutomatedTelnetClient telnet = new AutomatedTelnetClient();
                String answer = telnet.request();
                JLabel lbl = new JLabel(answer);
                add(lbl);
            }
        });
    } catch (Exception e) {
        System.err.println("createGUI didn't complete successfully");
    }
}
}

telnet 请求是在 AutomatedTelnetClient 类中发出的,一旦获得响应,会话也会关闭。当我执行 .html 文件时,没有绘制任何内容并且屏幕为空。任何人都知道它为什么会这样。还有其他方法可以将字符串添加到 Applet 中吗?难道问题出在 SwingUtilities 的 inovkeAndWait 上吗?

这是 HTML:

<HTML>
<HEAD>
</HEAD>
<BODY>
<div >
<APPLET CODE="m2mcom.web.Displaytext.class" WIDTH="800" HEIGHT="500">
</APPLET>
</div>
</BODY>
</HTML>
4

1 回答 1

0

尝试不运行

AutomatedTelnetClient telnet = new AutomatedTelnetClient();

在 SwingUtilities 线程中。b/c telnet 请求很可能是异步调用。尝试在不使用线程的情况下直接运行上面的代码,看看你得到了什么。

- -更新 - -

另一个问题可能是我下面代码中的最后一行,它将标签添加到您的小程序 contentPane 组件中。这可能是问题所在。

如果这两个修复不起作用,那么很可能是您的AutomatedTelnetClient类逻辑有问题。

package m2mcom.web;
import m2mcom.entities.AutomatedTelnetClient;
import javax.swing.JApplet;
import javax.swing.SwingUtilities;
import javax.swing.JLabel;

public class Displaytext extends JApplet {
//Called when this applet is loaded into the browser.
public void init() {
    //Execute a job on the event-dispatching thread; creating this applet's GUI.
    try {

                AutomatedTelnetClient telnet = new AutomatedTelnetClient();
                String answer = telnet.request();
                JLabel lbl = new JLabel(answer);
                getContentPane().add(lbl);



    } catch (Exception e) {
        System.err.println("createGUI didn't complete successfully");
    }
}
}
于 2013-01-25T16:14:40.677 回答