Java I';m接收错误:<;预期标识符>;和错误:从addItem语句非法启动JComboxes的类型

Java I';m接收错误:<;预期标识符>;和错误:从addItem语句非法启动JComboxes的类型,java,eclipse,events,combobox,Java,Eclipse,Events,Combobox,我有一个Java类的项目,它要求我添加到JComboxes中,并在点击它们时设置事件,以便根据需要更改比萨饼价格。另外,我知道事件代码有点不正确。它需要处理两个组合框,但有些地方不正确。我很难理解我需要改变什么。代码如下: // File name JPizza.java // Written by Me // Written on 4-26-2014 import javax.swing.*; import java.awt.*; import java.awt.event.*; publ

我有一个Java类的项目,它要求我添加到JComboxes中,并在点击它们时设置事件,以便根据需要更改比萨饼价格。另外,我知道事件代码有点不正确。它需要处理两个组合框,但有些地方不正确。我很难理解我需要改变什么。代码如下:

// File name JPizza.java
// Written by Me
// Written on 4-26-2014

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JPizza extends JFrame implements ActionListener
{
    final int EXTRALARGE_PRICE = 14;
    final int LARGE_PRICE = 11;
    final int MEDIUM_PRICE = 9;
    final int SMALL_PRICE = 7;

    final int CHEESE_PRICE = 0;
    final int PEPPERONI_PRICE = 1;
    final int SAUSAGE_PRICE = 1;
    final int REDONION_PRICE = 1;
    final int GREENPEPPER_PRICE = 1;
    final int MUSHROOM_PRICE = 1;

    int totalPrice = EXTRALARGE_PRICE + CHEESE_PRICE;

    JLabel applicationLabel = new JLabel("Pizza Price Calculator");

    JLabel optionExplainLabel = new JLabel("Select what size, and what topping you want from the drop down menus. Prices are listed in the combo boxes.");

    JLabel pizzaSize = new JLabel("Pizza size");
    JComboBox pizzaSizeValue = new JComboBox();
        pizzaSizeValue.addItem("Extra Large - $14");
        pizzaSizeValue.addItem("Large - $11");
        pizzaSizeValue.addItem("Medium - $9");
        pizzaSizeValue.addItem("Small - $7");
        pizzaSizeValue.setSelectedItem("Extra Large - $14");

    JLabel pizzaTopping = new JLabel ("Pizza topping");
    JComboBox pizzaToppingValue = new JComboBox();
        pizzaToppingValue.addItem("Cheese - free");
        pizzaToppingValue.addItem("Pepperoni - $1");
        pizzaToppingValue.addItem("Sausage - $1");
        pizzaToppingValue.addItem("Red Onion - $1");
        pizzaToppingValue.addItem("Green Pepper - $1");
        pizzaToppingValue.addItem("Mushroom - $1");
        pizzaToppingValue.setSelectedItem("Cheese - free");

    JLabel priceLabel = new JLabel("The price for your pizza is");
    JTextField totPrice = new JTextField(3);


    public JPizza()
    {
        super("Pizza Price Calculator");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new FlowLayout());
        add(applicationLabel);
        add(optionExplainLabel);
        add(pizzaSize);
        add(pizzaSizeValue);
        add(pizzaTopping);
        add(pizzaToppingValue);
        add(priceLabel);
        add(totPrice);
        totPrice.setText("$" + totalPrice);
        pizzaSizeValue.addActionListener(this);
        pizzaToppingValue.addActionListener(this);
    }

    public void actionPerformed(ActionEvent event)
    {
        int pizzaSizeCost = 14;
        int pizzaToppingCost = 0;
        JComboBox comboBox = (JComboBox) event.getSource();
        Object source = event.getSource();
        Object select = comboBox.getSelectedItem();
        if(source == pizzaSizeValue)
        {
            if(select.equals("Extra Large - $14"))
                pizzaSizeCost = EXTRALARGE_PRICE;
            if(select.equals("Large - $11"))
                pizzaSizeCost = LARGE_PRICE;
            if(select.equals("Medium - $9"))
                pizzaSizeCost = MEDIUM_PRICE;
            if(select.equals("Small - $7"))
                pizzaSizeCost = SMALL_PRICE;
        }
        if(source == pizzaToppingValue)
        {
            if(select.equals("Cheese - free"))
                pizzaSizeCost = CHEESE_PRICE;
            if(select.equals("Pepperoni $1"))
                pizzaSizeCost = PEPPERONI_PRICE;
            if(select.equals("Sausage $1"))
                pizzaSizeCost = SAUSAGE_PRICE;
            if(select.equals("Red Onion $1"))
                pizzaSizeCost = REDONION_PRICE;
            if(select.equals("Green Pepper $1"))
                pizzaSizeCost = GREENPEPPER_PRICE;
            if(select.equals("Mushroom $1"))
                pizzaSizeCost = MUSHROOM_PRICE;
        }       
    }

    public static void main(String[] args)
    {
        JPizza aFrame =
            new JPizza();
            final int WIDTH = 300;
            final int HEIGHT = 200;
            aFrame.setSize(WIDTH, HEIGHT);
            aFrame.setVisible(true);
    }
}
以下是错误:

c:\Java\Homework\CH14\YouDoIt>javac JPizza.java
JPizza.java:31: error: <identifier> expected
                pizzaSizeValue.addItem("Extra Large - $14");
                                      ^
JPizza.java:31: error: illegal start of type
                pizzaSizeValue.addItem("Extra Large - $14");
                                       ^
JPizza.java:32: error: <identifier> expected
                pizzaSizeValue.addItem("Large - $11");
                                      ^
JPizza.java:32: error: illegal start of type
                pizzaSizeValue.addItem("Large - $11");
                                       ^
JPizza.java:33: error: <identifier> expected
                pizzaSizeValue.addItem("Medium - $9");
                                      ^
JPizza.java:33: error: illegal start of type
                pizzaSizeValue.addItem("Medium - $9");
                                       ^
JPizza.java:34: error: <identifier> expected
                pizzaSizeValue.addItem("Small - $7");
                                      ^
JPizza.java:34: error: illegal start of type
                pizzaSizeValue.addItem("Small - $7");
                                       ^
JPizza.java:35: error: <identifier> expected
                pizzaSizeValue.setSelectedItem("Extra Large - $14");
                                              ^
JPizza.java:35: error: illegal start of type
                pizzaSizeValue.setSelectedItem("Extra Large - $14");
                                               ^
JPizza.java:39: error: <identifier> expected
                pizzaToppingValue.addItem("Cheese - free");
                                         ^
JPizza.java:39: error: illegal start of type
                pizzaToppingValue.addItem("Cheese - free");
                                          ^
JPizza.java:40: error: <identifier> expected
                pizzaToppingValue.addItem("Pepperoni - $1");
                                         ^
JPizza.java:40: error: illegal start of type
                pizzaToppingValue.addItem("Pepperoni - $1");
                                          ^
JPizza.java:41: error: <identifier> expected
                pizzaToppingValue.addItem("Sausage - $1");
                                         ^
JPizza.java:41: error: illegal start of type
                pizzaToppingValue.addItem("Sausage - $1");
                                          ^
JPizza.java:42: error: <identifier> expected
                pizzaToppingValue.addItem("Red Onion - $1");
                                         ^
JPizza.java:42: error: illegal start of type
                pizzaToppingValue.addItem("Red Onion - $1");
                                          ^
JPizza.java:43: error: <identifier> expected
                pizzaToppingValue.addItem("Green Pepper - $1");
                                         ^
JPizza.java:43: error: illegal start of type
                pizzaToppingValue.addItem("Green Pepper - $1");
                                          ^
JPizza.java:44: error: <identifier> expected
                pizzaToppingValue.addItem("Mushroom - $1");
                                         ^
JPizza.java:44: error: illegal start of type
                pizzaToppingValue.addItem("Mushroom - $1");
                                          ^
JPizza.java:45: error: <identifier> expected
                pizzaToppingValue.setSelectedItem("Cheese - free");
                                                 ^
JPizza.java:45: error: illegal start of type
                pizzaToppingValue.setSelectedItem("Cheese - free");
                                                  ^
24 errors

Any help would be appreciated!
c:\Java\homography\CH14\YouDoIt>javac JPizza.Java
java:31:错误:应为
PizzazizeValue.addItem(“超大-14美元”);
^
java:31:错误:类型的开始非法
PizzazizeValue.addItem(“超大-14美元”);
^
java:32:错误:应为
PizzazizeValue.addItem(“大号-11美元”);
^
java:32:错误:类型的开始非法
PizzazizeValue.addItem(“大号-11美元”);
^
java:33:错误:应为
PizzazizeValue.addItem(“中等-9美元”);
^
java:33:错误:类型的开头非法
PizzazizeValue.addItem(“中等-9美元”);
^
java:34:错误:应为
PizzazizeValue.addItem(“小-7美元”);
^
java:34:错误:类型的开头非法
PizzazizeValue.addItem(“小-7美元”);
^
java:35:错误:应为
PizzazizeValue.setSelectedItem(“超大-14美元”);
^
java:35:错误:类型的开始非法
PizzazizeValue.setSelectedItem(“超大-14美元”);
^
java:39:错误:应为
pizzaToppingValue.addItem(“无奶酪”);
^
java:39:错误:类型的开始非法
pizzaToppingValue.addItem(“无奶酪”);
^
java:40:错误:应为
pizzaToppingValue.addItem(“辣香肠-1美元”);
^
java:40:错误:类型的开始非法
pizzaToppingValue.addItem(“辣香肠-1美元”);
^
java:41:错误:应为
pizzaToppingValue.addItem(“香肠-1美元”);
^
java:41:错误:类型的开始非法
pizzaToppingValue.addItem(“香肠-1美元”);
^
java:42:错误:应为
pizzaToppingValue.addItem(“红洋葱-1美元”);
^
java:42:错误:类型的开始非法
pizzaToppingValue.addItem(“红洋葱-1美元”);
^
java:43:错误:应为
pizzaToppingValue.addItem(“青椒-1美元”);
^
java:43:错误:类型的开头非法
pizzaToppingValue.addItem(“青椒-1美元”);
^
java:44:错误:应为
pizzaToppingValue.addItem(“蘑菇-$1”);
^
java:44:错误:类型的开始非法
pizzaToppingValue.addItem(“蘑菇-$1”);
^
java:45:错误:应为
pizzaToppingValue.setSelectedItem(“无奶酪”);
^
java:45:错误:类型的开头非法
pizzaToppingValue.setSelectedItem(“无奶酪”);
^
24个错误
任何帮助都将不胜感激!

在类中,在任何构造函数或方法之外,都会发现有问题的代码,并且它不可能存在于类中。那里只能存在变量或类型声明和初始化。有问题的代码可能位于类的构造函数中


请注意,这个问题实际上与jcomboxes甚至Swing没有什么关系,而与试图对方法或构造函数之外的变量进行方法调用的一般Java问题有关。您可以在类中声明和初始化变量,但不能在类中进行方法调用。

这仅适用于JComboxes吗?我猜向组合框中添加项不是初始化。将其从类声明移动到类构造函数中修复了问题,谢谢。@dk_sn1p3r:问题与JComboBox本身无关,而与您试图在方法或构造函数之外对变量进行方法调用有关。可以在类中声明和初始化变量,但不能在类中进行方法调用。