В моем коде у меня есть простой JComboBox, который используется для включения или отключения определенной функции. Код JComboBox является:Выбранная опция JComboBox не влияет на изменение
public static JComboBox getErrorLoggingOnOrOff(){
String[] options = { "On", "Off" };
JComboBox combo = new JComboBox(options);
return combo;
}
Проблема в том, что это всегда возвращает значение, находясь на независимо от того, когда я нажимаю «Выкл.» JComboBox вызывается здесь: Обратите внимание, что я включил System.out.println() (и проверку для null) только для проверки вывода.
String option = combo.getSelectedItem().toString();
....
if(option.equals("On")){
System.out.println("On selected");
return;
}
else if(option.equals("Off")){
System.out.println("Off selected");
return;
}
else {
System.out.println("Null value for option.... :-/");
}
Все указатели будут высоко оценили, искренне озадачен, почему это не происходит, без сомнения, просто через поле зрения.
С уважением, Рег.
EDIT Вот полный отрывок кода
final JMenuItem enableErrorLogging = new JMenuItem("Enable Error Logging");
enableErrorLogging.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M, ActionEvent.ALT_MASK));
enableErrorLogging.setMnemonic(KeyEvent.VK_M);
menu.add(enableErrorLogging);
enableErrorLogging.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
if (ui.getWorkspace().getCurrentProject() == null) {
openProjectMessagePane();
return;
}
JComboBox combo = getErrorLoggingOnOrOff();
JPanel panel = new JPanel(new GridLayout(0, 1));
panel.add(new JLabel("Turn Error Logging On Or Off"));
panel.add(combo);
String option = combo.getSelectedItem().toString();
try{
int r = JOptionPane.showConfirmDialog(frame, panel, "Enable Error Logging?",
JOptionPane.OK_OPTION, JOptionPane.PLAIN_MESSAGE);
if (r == JOptionPane.OK_OPTION) {
if(option.equals("On")){
System.out.println("On selected");
return;
}
else if(option.equals("Off")){
System.out.println("Off selected");
return;
}
else{
System.out.println("Null value for option.... :-/");
}
}
} catch (Exception ex) {
LOGGER.debug(ex);
}
}
});
Вы можете предоставить исполняемую версию кода, или она слишком длинная? – bakalolo
Возможно, это слишком долго ... Я буду искать другие экзерты, которые потенциально могут вызвать проблемы! – Reginald
@bakalolo Поместите весь код для этой операции там, не обращайте внимания на мой предыдущий комментарий. Спасибо за ваш интерес. – Reginald