为什么我一直在这个Java代码中出错?

时间:2011-03-14 23:51:01

标签: java syntax-error

我正在编写一个让用户选择一种货币的程序,然后当他们输入数字并点击“转换按钮”时,转换会显示在文本框中。但是我继续在第36行收到一个错误,上面写着“类或接口预期的public void init()'

import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class CurrencyConversionApplet implements ActionListener, ItemListener
{

// Variables

     double  dollars, pounds, euros, ruble, price;

     Image   dollarSign;



    Label lblTitle = new Label ("Enter the dollar amount (do not use commas or dollar signs): ");
    Label lblOutput = new Label (" ");
    TextField txtDollar = new TextField(10);
    Button convButton = new Button("Convert");

    CheckboxGroup chkGroup = new CheckboxGroup();
          Checkbox chkPounds = new Checkbox("British Pounds",false,chkGroup);
          Checkbox chkEuro = new Checkbox("Euros",false,chkGroup);
          Checkbox chkRuble = new Checkbox("Russian Ruble",false,chkGroup);
          Checkbox hiddenBox = new Checkbox("",true,chkGroup);
     Image dollarSign;
}

     public void init()

        {


      add(lblTitle);
      add(txtDollar);
      add(convButton);
      add(chkPounds);
      add(chkEuro);
      add(chkRuble);
          chkPounds.addItemListener(this);
          chkEuro.addItemListener(this);
          chkRuble.addItemListener(this);

      dollarSign=getImage(getDocumentBase(), "dollar.jpg");

      setBackground(Color.blue);
      setForeground(Color.yellow);

        convButton.addActionListener(this);

    }

          public void paint(Graphics g) {
          g.drawImage(dollarSign, 0, 28, this);

    }


 public void itemStateChanged(ItemEvent choice)
      {

             dollars = Double.parseDouble(txtDollar.getText());
             pounds = dollars * .62
             euros =  dollars * .71
             ruble = dollars * .03


     if(chkPounds.getState())
        price = pounds;

     if(chkEuro.getState())
        price = euros;

     if(chkRuble.getState())
        price = ruble;

    }

        public void actionPerformed(ActionEvent e)
                    {



lblOutput.setText(Double.toString(price));

}

6 个答案:

答案 0 :(得分:4)

您在类init()之外定义了CurrencyConversionApplet方法。这就是你想要的吗?

错误'class or interface expected public void init ()'说明了一切:编译器期望有类或接口。 init()不是这些。

答案 1 :(得分:3)

你不应该删除'}'吗?

Image dollarSign;
}

答案 2 :(得分:2)

如果我正确阅读,你在}的申报行之前有一个额外的Init,关闭班级声明。

     Image dollarSign;
} /* <-- */

     public void init()

答案 3 :(得分:2)

您收到该错误的原因是public void init()方法  不在班级CurrencyConversionApplet内。

答案 4 :(得分:2)

因为方法init()需要成为CurrencyConversionApplet的一部分。所以,这样做 -

 Image dollarSign;
 } // <-  Remove that and place it at the very end of the program.

经过纠正,还有其他错误 -

 pounds = dollars * .62
 euros =  dollars * .71
 ruble = dollars * .03

itemStateChanged方法的所有上述陈述应以;

结束

答案 5 :(得分:0)

我没有看到你扩展Applet类。如果这是一个applet,那么你应该扩展Applet类