public class RoomListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
double roomtype;
if (event.getSource() == room1)
roomtype = 60;
else if (event.getSource() == room2)
roomtype = 75;
else
roomtype = 100;
}
}
public class CostListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
double NightLength, roomNumber, cost;
String NightText = NumberOfNights.getText();
String RoomText = NumberOfRooms.getText();
NightLength = Double.parseDouble(NightText);
roomNumber = Double.parseDouble(RoomText);
RoomListener.actionPerformed(RoomType);
cost = roomtype * NightLength * roomNumber;
CostCalculation.setText(Double.toString(cost));
NumberFormat fmt = NumberFormat.getNumberInstance();
CostCalculation.setText(fmt.format(cost));
}
}
答案 0 :(得分:0)
RoomListener.actionPerformed(RoomType);
这不是static
方法。您无法使用类名称来调用它。
什么是RoomType
?如果它不是ActionEvent
,那么它就不会起作用。看看这个方法。
public void actionPerformed(ActionEvent event)
你真的不应该呼唤另一个听众的行动,或者至少我无法想出一个理由。您需要在RadioButtons上添加new RoomListener()
。虽然,我建议您查看一个RadioGroup类,并阅读JavaDoc以获取正确的侦听器,以便您确定所选单选按钮的来源。
此方法不返回任何内容。 double roomtype
是一个局部变量,当您退出此方法时,它将被丢弃(垃圾回收)。也许你想修改一个成员变量? this.roomtype
?
除此之外 - 我无法告诉room1
和room2
在哪里......他们似乎无法访问。
public void actionPerformed(ActionEvent event)
{
double roomtype;
if (event.getSource() == room1)
roomtype = 60;
else if (event.getSource() == room2)
roomtype = 75;
else
roomtype = 100;
}