Я пришел из фона C, поэтому я предполагаю, что у меня неправильный синтаксис.
В следующем коде;
public class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
String jcbValue = (String) jcbIDF.getSelectedItem();
if (jcbValue.equals("Insert")) {
String Id = jtfId.getText();
ArrayList<String> ValueList = new ArrayList<String>();
String Name = jtfName.getText();
String GPA = jtfGPA.getText();
ValueList.add(Name);
ValueList.add(GPA);
if (map.containsKey(Id)){
JOptionPane.showMessageDialog(null, "Key exists!",
"Result", JOptionPane.INFORMATION_MESSAGE);
}
else if (!map.containsKey(Id)){
map.put(Id, ValueList);
System.out.println(map);
JOptionPane.showMessageDialog(null, "Record inserted",
"Result", JOptionPane.INFORMATION_MESSAGE);
jtfId.setText("");
jtfName.setText("");
jtfGPA.setText("");
}
} //terminates insert
else if (jcbValue.equals("Delete")) {
String Id = jtfId.getText();
ArrayList<String> ValueList = new ArrayList<String>();
String Name = jtfName.getText();
String GPA = jtfGPA.getText();
if (map.containsKey(Id)){
JOptionPane.showMessageDialog(null, "Key exists, deleted!",
"Result", JOptionPane.INFORMATION_MESSAGE);
} else if (!map.contasKey(Id)){
System.out.println(map);
JOptionPane.showMessageDialog(null, "Key Does not exist!",
}
} //terminates delete
else if (jcbValue.equals("Find")) {
System.out.println(map);
JOptionPane.showMessageDialog(null,
"Find Selected; But not Implemented", "Result",
JOptionPane.INFORMATION_MESSAGE);
} //terminates find
}// Terminates actionPerformed Class
}// Terminates ButtonListenerClass
Я получаю ошибки компиляции, говоря "} Неожиданнов строке X и преждевременном EOF. Если я удалил вложенные IF, которые оценивают map.containsKey (Id), он компилируется и работает нормально. Все, что я читаю в Интернете, говорит, что Java способна вкладывать операторы IF, так что именно я делаю неправильно?
Спасибо за помощь!
CJ