ShowParametersDemo调用ParametersDemo的getParameterInfo()方法,取得各个参数,然后显示在table中,但是为什么打开html时什么东西也没有,不过保留前一个窗口,然后再打开一次html文件,就可以看到table了?
以下是代码,分别放到三个文件中:import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;public class ParametersDemo extends Applet{
public String[][] getParameterInfo(){
String[][] pinfo =
{
{"param0","String","字符变量1"},
{"param1","String","字符变量2"},
{"param2","String","字符变量3"},
{"param3","String","字符变量4"},
{"param4","String","字符变量5"},
{"param5","String","字符变量6"}
};
return pinfo;
}
}
-------------------------------------------------------------------------------------import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;public class ShowParametersDemo extends Applet{
boolean isStandalone = false;
JTable jTable1;
Applet applet;
String appletName;

public void init(){
try{jbInit();}catch(Exception e){}
}

private void jbInit() throws Exception{
setLayout(null);
appletName = "parametersApplet";

applet = getAppletContext().getApplet(appletName); Object[][] obj = ((ParametersDemo)applet).getParameterInfo(); String[] str = {"变量的名字","类型","描述"}; jTable1 = new JTable(obj,str);
jTable1.setBounds(new Rectangle(35,59,316,173));
add(jTable1,null);
}
}
---------------------------------------------------------------------------------------
<body>
<applet
codebase  ="."
code      ="ShowParametersDemo.class"
name      ="showParametersApplet"
width  ="400"
height  ="300"
hspace  ="0"
vspace  ="0"
align  ="top"
>
</applet>
<br>
<applet
codebase  ="."
code      ="ParametersDemo.class"
name      ="parametersApplet"
width  ="400"
height  ="50"
hspace  ="0"
vspace  ="0"
align  ="top"
>
</applet>
</body>

解决方案 »

  1.   

    照这样看ParametersDemo是ShowParametersDemo的中的一个bean,把它单独写一个applet后,再去调用它,这有意思吗。把代码改成:
    <body>
    <applet
    codebase  ="."
    code      ="ParametersDemo.class"
    name      ="parametersApplet"
    width  ="400"
    height  ="50"
    hspace  ="0"
    vspace  ="0"
    align  ="top"
    >
    </applet>
    <applet
    codebase  ="."
    code      ="ShowParametersDemo.class"
    name      ="showParametersApplet"
    width  ="400"
    height  ="300"
    hspace  ="0"
    vspace  ="0"
    align  ="top"
    >
    </applet>
    <br></body>
    交换两个applet的位置
      

  2.   

    因为是加载applet时,先加载的是ShowParametersDemo.class,然后再是ParametersDemo.
    ShowParametersDemo加载时去调getParameterInfo()方法,ParametersDemo对象都未建立,所以就不会获取到元素。
    那为什么第二次再打开网页时又有呢,是因为第一次打开时ParametersDemo已经加载到本地JVM中,所以ShowParametersDemo去调用时就有数据了。相当于第二次打开的ShowParametersDemo去调用第一次打开的ParametersDemo