我正在编写一个让用户选择一种货币的程序,然后当他们输入数字并点击“转换按钮”时,转换会显示在文本框中。但是我继续在第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));
}
答案 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类