Обычно я нажимаю кнопку JButton (unipedal), и она появляется с панелью JOptionPane с несколькими полями JTextFields.Я хочу взять строковые входные данные этих JTextFields и:
- Проверьте, чтобы убедиться, что строковые значения находятся в HashMap, который у меня есть (posTasks.taskType), который должен быть
- Затем создайте новый объект UNIPEDALImpl с этими строками в качестве параметров
- Используйте строки в качестве ключей для другого HashMap типа (jLabelsHM), чтобы скрыть JLabel, если ключ этого HashMap возвращает true, когда используется в качестве ключа вposTasks.completedTasks.
Я получаю несколько ошибок и не могу понять, почему.
unipedal.addActionListener(new java.awt.event.ActionListener() {
@SuppressWarnings("null")
@Override
public void actionPerformed(java.awt.event.ActionEvent evt) {
String robotName = null;
String firstTask = null;
String secondTask = null;
String thirdTask = null;
String fourthTask = null;
String fifthTask = null;
JPanel inputBox = new JPanel();
inputBox.setLayout(new GridLayout(0, 2, 3, 4));
JTextField name = new JTextField(15);
JTextField task1 = new JTextField(15);
JTextField task2 = new JTextField(15);
JTextField task3 = new JTextField(15);
JTextField task4 = new JTextField(15);
JTextField task5 = new JTextField(15);
inputBox.add(new JLabel("Robot's Name:"));
inputBox.add(name);
inputBox.add(new JLabel("Task 1:"));
inputBox.add(task1);
inputBox.add(new JLabel("Task 2:"));
inputBox.add(task2);
inputBox.add(new JLabel("Task 3:"));
inputBox.add(task3);
inputBox.add(new JLabel("Task 4:"));
inputBox.add(task4);
inputBox.add(new JLabel("Task 5:"));
inputBox.add(task5);
int option = JOptionPane.showConfirmDialog(middle,inputBox,
"Please fill all the fields", JOptionPane.OK_CANCEL_OPTION);
if (option == JOptionPane.OK_OPTION) {
robotName.equals(name.getText());
firstTask.equals(task1.getText());
secondTask.equals(task2.getText());
thirdTask.equals(task3.getText());
fourthTask.equals(task4.getText());
fifthTask.equals(task5.getText());
if (!posTasks.taskType.containsKey(firstTask)||!posTasks.taskType.containsKey(secondTask)||!posTasks.taskType.containsKey(thirdTask)||!posTasks.taskType.containsKey(fourthTask)||!posTasks.taskType.containsKey(fifthTask)) {
throw new IllegalArgumentException("One or more of the tasks you have requested are invalid. Please choose tasks from the list provided and check your spelling!");
}
try {
UNIPEDALImpl unipedal = new UNIPEDALImpl(firstTask, secondTask, thirdTask, fourthTask,
fifthTask);
LinkedList<String>tasksList = new LinkedList <String>();
tasksList.add(firstTask);
tasksList.add(secondTask);
tasksList.add(thirdTask);
tasksList.add(fourthTask);
tasksList.add(fifthTask);
for (String task : tasksList) {
if (posTasks.completedTasks.get(task) == true) {
throw new IllegalArgumentException(task + "has already been completed. Please choose a different task or use 'refresh' if you want the task to be completed again");
}
unipedal.time += unipedal.taskTimes.get(task);
posTasks.completedTasks.put(task, true);
unipedal.tasksList.remove(task);
unipedal.taskCounter++;
}
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
for (Entry<String, JLabel> entry : jLabelsHM.entrySet()) {
if(posTasks.completedTasks.get(entry.getKey()) == true) {
jLabelsHM.get(entry.getKey()).setVisible(false);
}
}
}
}
});