Java找不到符号,Java在数组中找不到我的符号?

这是我写这行代码时得到的错误。

symbol : variable isSeletecd location: class java.lang.String if (dorm[0].isSeletecd && meal[0].isSeletecd()) ^ if (dorm[0].isSeletecd && meal[0].isSeletecd()) totalCharges.setText("2150.00"); 

程序:

 import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; /** The Main class creates the GUI for the Dorm and Meal charges. */ public class Main extends JFrame { private JPanel dormPanel; private JComboBox dormBox; private JPanel mealPanel; private JComboBox mealBox; private JPanel totalChargesPanel; private JPanel selectedMealPanel; private JPanel buttonPanel; private JButton calcButton; private JLabel label1; private JTextField totalCharges; private String[] dorm = { "Allen Hall: $1,500 per semester", "Pike Hall: $1,600 per semester", "Farthing Hall: $1,200 per semester", "University Suites: $1,800 pe r semester"}; private String[] meal = { "7 meals per week: $650 per semester", "14 meals per week: $1,095 per semester", "Unlimited meals: $1,500 per semester"}; /** Constructor */ public Main() { super("Dormitory and Meal Plan"); // Specify an action for the close button. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Create a BorderLayout manager. setLayout(new BorderLayout()); // Create the dorm and meal panel. buildDormPanel(); buildMealPanel(); buildSelectedTotalChargesPanel(); buildButtonPanel(); // Add the components to the content pane. add(dormPanel, BorderLayout.WEST); add(mealPanel, BorderLayout.EAST); add(totalChargesPanel, BorderLayout.SOUTH); add(buttonPanel, BorderLayout.NORTH); // Pack the contents of the window and display it. pack(); setVisible(true); } // The buildDormPanel method builds the dorm panel. private void buildDormPanel() { // Create the dorm panel. dormPanel = new JPanel(); dormBox = new JComboBox(dorm); // Register the action listener. dormBox.addActionListener(new ComboBoxListener()); // Add the dorm panel to the panel. dormPanel.add(dormBox); } // The buildMealPanel method builds the meal panel. private void buildMealPanel() { // Create the meal panel. mealPanel = new JPanel(); mealBox = new JComboBox(meal); // Register the action listener. mealBox.addActionListener(new ComboBoxListener()); // Add the meal panel to the panel. mealPanel.add(mealBox); } // The buttonPanel method builds the bottun panel. private void buildButtonPanel() { // Create a panel. buttonPanel = new JPanel(); // Create a button. calcButton = new JButton("Calculate"); // Register an action listener with the button. calcButton.addActionListener(new ButtonListener()); // Add the button to the panel. buttonPanel.add(calcButton); } // The buildSelectedDormPanel builds the selected totalCharges panel. private void buildSelectedTotalChargesPanel() { // Create the totalChargesPanel for the label. totalChargesPanel = new JPanel(); label1 = new JLabel("Total charges per semester: "); // Create the totalCharges textfield. totalCharges = new JTextField (25); totalCharges.setEditable(false); // Add the totalChargesPanel to the panel. totalChargesPanel.add(label1); totalChargesPanel.add(totalCharges); } /** Private inner class that handles the event when the user selects the dorm and meal boxes. */ private class ComboBoxListener implements ActionListener { public void actionPerformed(ActionEvent e) { // Variables to hold the dorm, meal, and total charges. String dorm = (String) dormBox.getSelectedItem(); String meal = (String) mealBox.getSelectedItem(); // Calculates the total. totalCharges.setText(meal + dorm); } } private class ButtonListener implements ActionListener { public void actionPerformed(ActionEvent e) { if (dorm[0].isSeletecd && meal[0].isSeletecd()) totalCharges.setText("2150.00"); } } public static void main(String[] args) { new Main(); } } 

dormmeal是String数组, java.lang.String上没有isSeletecd字段或isSelected()方法。

dormmeal是字符串数组

String类没有isSelected()方法,但JComboBox有一个getSelectedIndex()方法,可用于获取JComboBox组件中当前所选项的索引号。

通过替换ButtonListener类中if语句中的ButtonListener

 if (dorm[0].isSeletecd && meal[0].isSeletecd()) 

 if(dormBox.getSelectedIndex()==0 && mealBox.getSelectedIndex()==0) 

会解决你的问题。

所以你的ButtonListener类现在就是

 private class ButtonListener implements ActionListener { public void actionPerformed(ActionEvent e) { if(dormBox.getSelectedIndex()==0 && mealBox.getSelectedIndex()==0) totalCharges.setText("2150.00"); } } 

有关更多信息,请参阅getSelectedIndex()