一个小Applet程序,就是参数传递不过去,调试又调不出来,大侠们帮菜鸟看看吧。
第一次用,没法给分,大家体谅一下,谢谢了
源代码如下:两个文件
//Complex.java
public class Complex 
{
double real,virtual;
Complex Add(Complex c2)
{
real+=c2.real;
virtual+=c2.virtual;
return new Complex(real,virtual);
}
Complex Sub(Complex c2)
{
real-=c2.real;
virtual-=c2.virtual;
return new Complex(real,virtual);
}
Complex Mul(Complex c2)
{
real=(real*c2.real+virtual*c2.virtual);
virtual=(real*c2.virtual+virtual*c2.real);
return new Complex(real,virtual);
}
Complex(double real,double virtual)
{
this.real=real;
this.virtual=virtual;
}
public String toString()
{
return "("+real+"+"+virtual+"*i"+")";
}
}//Calculate.java
import java.applet.Applet;
import java.awt.Graphics;
import java.lang.Double;
public class Calculate extends Applet
{
Complex com1,com2,com3;
String operator;
public void init()
{
double real_1=Double.parseDouble(getParameter("realf"));
double virtual_1=Double.parseDouble(getParameter("virtualf"));
com1=new Complex(real_1,virtual_1);

double real_2=Double.parseDouble(getParameter("reals"));
double virtual_2=Double.parseDouble(getParameter("virtuals"));
com2=new Complex(real_2,virtual_2); String cal=getParameter("calculate");
if(cal=="Add")
{
com3=com1.Add(com2);
operator="+";
}
else if(cal=="Sub")
{
com3=com1.Sub(com2);
operator="-";
}
else
{
com3=com1.Mul(com2);
operator="*";
}
}
public void paint(Graphics g)
{
g.drawString(com1+operator+com2+"="+com3, 100, 100);
}
}
/*
 * Applet
  <Applet code="Complex.class" height="300" width="300" >
<Param name="realf" value="56" >
<Param name="virtualf" value="989" >
<Param name="reals" value="68" >
<Param name="virtuals" value="89" >
<Param name="calculate" value="Mul" >
</Applet>
*/

解决方案 »

  1.   

    谢谢,问题我已经找到了,是我太相信自己的HTML的编写能力,太瞧不起自己的java编写能力,是HTML中Applet的code参数写错了。呵呵。
    看看我新写的这个程序,原来的有很多错误。
    原来是<applet code="calculator.class" ....>
    此处写错了.....//calculate.java
    import java.applet.Applet;
    import java.awt.Graphics;
    import java.lang.Double;public class Calculate extends Applet
    {
    Complex com1,com2,com3;
    String operator;
    public void init()
    {
    double real_1=Double.parseDouble(getParameter("real_1"));
    double virtual_1=Double.parseDouble(getParameter("virtual_1"));
    com1=new Complex(real_1,virtual_1);

    double real_2=Double.parseDouble(getParameter("real_2"));
    double virtual_2=Double.parseDouble(getParameter("virtual_2"));
    com2=new Complex(real_2,virtual_2); operator=getParameter("calculate");
    if(operator.equals("+"))
    {
    com3=com1.Add(com2);
    }
    else if(operator.equals("-"))
    {
    com3=com1.Sub(com2);
    }
    else if(operator.equals("*"))
    {
    com3=com1.Mul(com2);
    }
    }
    public void paint(Graphics g)
    {
    g.drawString(com1+operator+com2+"="+com3, 100, 100);
    }
    }
    /*
      <Applet code="Calculate.class" height="300" width="500" >
    <Param name="real_1" value="5" >
    <Param name="virtual_1" value="6" >
    <Param name="real_2" value="7" >
    <Param name="virtual_2" value="8" >
    <Param name="calculate" value="+" >
    </Applet>
    *///complex.javapublic class Complex 
    {
    private double real;
    private double virtual;
    public double getReal()
    {
    return real;
    }
    public double getVirtual()
    {
    return virtual;
    }
    Complex Add(Complex c2)
    {
    double r=real;
    double v=virtual;
    r+=c2.getReal();
    v+=c2.getVirtual();
    return new Complex(r,v);
    }
    Complex Sub(Complex c2)
    {
    double r=real;
    double v=virtual;
    r-=c2.getReal();
    v-=c2.getVirtual();
    return new Complex(r,v);
    }
    Complex Mul(Complex c2)
    {
    double r1=real;
    double v1=virtual;
    double r=(r1*c2.getReal()-v1*c2.getVirtual());
    double v=(r1*c2.getVirtual()+v1*c2.getReal());
    return new Complex(r,v);
    }
    Complex(double real,double virtual)
    {
    this.real=real;
    this.virtual=virtual;
    }
    public String toString()
    {
    return " ("+real+"+"+virtual+"*i"+") ";
    }
    }