#java #if-statement #jcheckbox #mouseclick-event #itemlistener
#java #if-оператор #jcheckbox ( флажок ) #щелчок мышью-событие #itemlistener
Вопрос:
То, что я пытаюсь сделать, — это вывод в файл при нажатии кнопки Сохранить. У них есть 4 флажка, и им нужно выбрать один. когда они выберут один из них, он сообщит программе, какой из них они выбрали, и соответственно выведет следующее.
То, что у меня сейчас не работает, есть какие-нибудь идеи?
JButton buttonSave = new JButton("Save");
buttonSave.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
String name = whoSoldTo.getText();
String test = sellPrice.getText();
int soldToPrice = Integer.parseInt(test);
checkboxMint.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent ev) {
}
});
if(ev.getStateChange() == ItemEvent.SELECTED) {
write.soldToFile(name, "mint", soldToPrice);
System.out.println("Mint works");
}
checkboxTobacco.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange() == ItemEvent.SELECTED) {
write.soldToFile(name, "tobacco", soldToPrice);
}
}
});
checkboxFruit.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange() == ItemEvent.SELECTED) {
write.soldToFile(name, "fruit", soldToPrice);
}
}
});
checkboxCreme.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange() == ItemEvent.SELECTED) {
write.soldToFile(name, "creme", soldToPrice);
}
}
});
}
});
buttonSave.setBounds(227, 143, 117, 29);
contentPane.add(buttonSave);
}
}
Ответ №1:
Запишите все itemlisteners самостоятельно, т.е. вне mouseclicklistener . Объявите глобальные логические переменные для разных элементов, например, Bool fruits, для которых установлено значение false, и когда в itemlistener происходит событие, установите для него значение true. В onMouseClicklistener проверьте, какая логическая переменная имеет значение true, и выполните действие, связанное с элементом
Комментарии:
1. Я только что полностью избавился от кнопки сохранения и просто придерживаюсь флажков.