У меня есть строка ArrayList
строк, которая автоматически генерирует список флажков (разного количества) во всплывающем окне. Я в настоящее время есть две проблемы с кода ниже:Java: массив объектов и получение значений/свойств автоматически созданных флажков
Object[] params
не работает, потому что она требует от меня, чтобы знать размер ArrayListar
заранее, и я понял, нету, чтобы получить ArrayList объектов для работы с мой код. Как я могу это исправить? Я попытался создать объект массива объектов, но я мог получить его только для отображения бессмысленного текста.- Как я могу получить значения/текст каждого флажка и соответствующее значение isSelected()?
Ниже мой код:
String message = "The selected servers will be shutdown.";
Object[] params = {message, null, null, null, null, null};
ArrayList<String> ar = GetSet.getStopCommand(); // Example array: ./Stopplm11.sh|./Stopplm12.sh|./Stopplm14.sh|./Stopplm15.sh
for(int i=0; i< ar.size(); i++){
JCheckBox checkbox = new JCheckBox();
checkbox.setText(ar.get(i).toString());
checkbox.setSelected(true);
params[i+1]= checkbox;
}
int n = JOptionPane.showConfirmDialog(btnShutdownServer, params, "Shutdown Servers", JOptionPane.OK_CANCEL_OPTION);
if (n == JOptionPane.OK_OPTION){
// DO STUFF
//boolean buttonIsSelected= checkbox.isSelected();
}else{
// user cancelled
}
Изображение, для тех, кто любит изображения:
Могу ли я добавить флажки в «params», как показано ниже, так что мне нужно создать только один объект для включения в «params» вместо объектов «x». ----- Объект [] params = {message, checkboxes}; – heyitsmyusername
Вы можете сделать это, если хотите, но, вероятно, лучше создать простой класс, который может содержать строковое сообщение и флаги ArrayList. Тогда у вас могут быть геттеры и сеттеры для класса. Возможно, вам захочется добавить еще кое-что в класс позже. Это более гибко, и вам не нужно беспокоиться о получении ClassCastException при получении вещей из класса, как с Object [] –
. Ваш код исправил мою первую проблему. Спасибо :) Последнее: когда я добавляю флажки в «params», я все равно получаю неправильный результат. Как я могу правильно отобразить объекты? Я разместил изображение в нижней части моего исходного сообщения текущего результата. – heyitsmyusername