为什么我在这段 Java 代码中不断收到错误?
我正在编写一个程序,让用户选择一种货币类型,然后当他们输入数字并单击“转换按钮”时,转换结果将显示在文本框中。但我在第 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));
}
I'm writing a program that lets the user select a type of currency, then when they enter in the number and click the 'convert button' the conversion is displayed in a text box. But I keep getting an error on line 36 that says 'class or interface expected 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));
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
您在
CurrencyConversionApplet
类外部定义了init()
方法。这就是你想要的吗?错误
'class or interface Expected public void init ()'
说明了一切:编译器期望有一个类或一个接口。而init()
都不是这些。You have the
init()
method defined outside of classCurrencyConversionApplet
. Is that what you want?The error
'class or interface expected public void init ()'
says it all: The compiler expects there either a class or an interface. Andinit()
is none of these.你不应该删除那个'}'吗?
Shouldn't you delete that '}' ?
如果我没看错的话,在
Init
声明行之前有一个额外的}
,用于关闭类声明。If I'm reading it right, you have an extra
}
just before your declaration line forInit
, closing the class declaration.您收到该错误是因为方法
public void init()
不在类
CurrencyConversionApplet
内。You're getting that error because the method
public void init()
is not inside the class
CurrencyConversionApplet
.因为方法
init()
需要是CurrencyConversionApplet
的一部分。因此,改为这样做 -更正后,还有其他错误 -
itemStateChanged
方法的上述所有语句都应以 ; 结束Because the method
init()
needs to be part ofCurrencyConversionApplet
. So, do this instead -With that corrected, there are other mistakes too -
All the above statements of
itemStateChanged
method should be ended by a ;我没有看到你扩展了 Applet 类。如果这是一个小程序,那么您应该扩展 Applet 类
I don't see that you extend the Applet Class. If this is an applet then you should extend the Applet class