我的Java applet分配有問題。出於某種原因,我無法弄清楚,每當我查看一個複選框時,我的所有if語句立即啓動。該程序應該更新總價格,並在每次按下一個方框時通知用戶。我們必須使用複選框而不是單選按鈕或JCheckBox,並且程序必須被編寫爲applet。這裏是我的代碼的鏈接。爲什麼我所有的if語句立刻開始? (Java)
// Classes
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
@SuppressWarnings("serial")
public class ReasonableComputersChristiansen extends Applet implements ItemListener
{
// Variables
Image logo;
double basePrice;
Label companyLabel = new Label("Reasonable Computers");
Label instructionLabel = new Label("Please select your desired peripherals from the list below");
Label outputLabel = new Label("TOTAL PRICE: ");
Checkbox printerBox = new Checkbox("Ink Waster 9000");
Checkbox monitorBox = new Checkbox("EvilCorp Monitor");
Checkbox keyboardBox = new Checkbox("Clickity-Clackity Keyboard");
Checkbox mouseBox = new Checkbox("Worst-Aim Laser Gaming Mouse");
Checkbox joystickBox = new Checkbox("Crash and Burn X-2 Joystick");
Checkbox webcamBox = new Checkbox("Not-So-Anonymous Webcam");
// Components
public void init()
{
add(companyLabel);
add(instructionLabel);
add(printerBox);
printerBox.addItemListener(this);
add(monitorBox);
monitorBox.addItemListener(this);
add(keyboardBox);
keyboardBox.addItemListener(this);
add(mouseBox);
mouseBox.addItemListener(this);
add(joystickBox);
joystickBox.addItemListener(this);
add(webcamBox);
webcamBox.addItemListener(this);
add(outputLabel);
logo = getImage(getDocumentBase(), "logo.gif");
}
// Actions
public void itemStateChanged(ItemEvent e)
{
basePrice = 575.00;
if (printerBox.getState());
{
basePrice += 69.99;
System.out.println("Printer added!");
}
if (monitorBox.getState());
{
basePrice += 125.49;
System.out.println("Monitor added!");
}
if (keyboardBox.getState());
{
basePrice += 55.59;
System.out.println("Keyboard added!");
}
if (mouseBox.getState());
{
basePrice += 19.99;
System.out.println("Mouse added!");
}
if (joystickBox.getState());
{
basePrice += 224.97;
System.out.println("Joystick added!");
}
if (webcamBox.getState());
{
basePrice += 99.19;
System.out.println("Webcam added!");
}
}
// Output
public void output()
{
outputLabel.setText("TOTAL PRICE: $" + (basePrice));
}
}
檢查';單曲 – tkausl