Данные:
- Я кодирую в Java.
- Я делаю это GUI Формы, которые мне предоставляет IntelliJ IDE.
- У меня есть этот класс FormManager, который имеет каждую форму во вселенной моей программы и позволяет мне выполнять некоторые действия (отправлять сообщения) всем или некоторым из них.
Чтобы быть более точным c каждая новая форма, которую я создаю, имеет свой тип данных (имя формы). Итак, это класс, о котором я говорил ранее:
public class FormManager {
static Form1 form1 = new Form1();
static Form2 form2 = new Form2();
static Form3 form3 = new Form3();
static Form4 form4 = new Form4();
static Form5 form5 = new Form5();
static Form6 form6 = new Form6();
static List<Object> forms = new ArrayList<Object>();
public static void agregarFormsALista(){
forms.add(new Form1());
forms.add(new Form2());
forms.add(new Form3());
forms.add(new Form4());
forms.add(new Form5());
forms.add(new Form6());
}
public static void testing1(){
System.out.println(forms.get(0).getClass());
// Print: class Form1.Form1 (it is inside a package named Form1)
}
// The form that is currently being "used" (showed)
static int formActual = 1;
public static void agregarListeners(){
//for (Object unForm : forms){
// unForm.addWindowListener(new MiWindowListener());
//}
form1.addWindowListener(new MiWindowListener());
form2.addWindowListener(new MiWindowListener());
form3.addWindowListener(new MiWindowListener());
form4.addWindowListener(new MiWindowListener());
form5.addWindowListener(new MiWindowListener());
form6.addWindowListener(new MiWindowListener());
}
public static void activarForm1(){
desactivarForms();
form1.setVisible(true);
}
public static void siguienteForm(){
desactivarForms();
switch (formActual){
case 1:
form2.setVisible(true);
System.out.println("Mostrando Form2");
break;
case 2:
form3.setVisible(true);
System.out.println("Mostrando Form3");
break;
case 3:
form4.setVisible(true);
System.out.println("Mostrando Form4");
break;
case 4:
form5.setVisible(true);
System.out.println("Mostrando Form5");
break;
case 5:
form6.setVisible(true);
System.out.println("Mostrando Form6");
break;
default:
System.out.println("No hay mas forms para mostrar....");
break;
}
formActual++;
}
private static void disableAllForms(){
form1.setVisible(false);
form2.setVisible(false);
form3.setVisible(false);
form4.setVisible(false);
form5.setVisible(false);
form6.setVisible(false);
}
}
Основной вопрос c: Как я могу получить все эти формы в единой структуре данных, где я могу затем отправлять сообщения всем им? ? Сообщения типа setVisible(false)
или addWindowListener(new MiWindowListener())
У меня была идея (глядя на Google) сделать этот прекрасный static List<Object> forms = new ArrayList<Object>();
, который вы видите в строке 10 кода, который я показываю ..
но когда я пытаюсь отправить какой-либо из пунктов сообщение, оно говорит следующее
Если кто-нибудь может дать мне некоторое представление о том, как я могу получить все это формирует (разных типов данных) в единую структуру и отправляет им сообщения вместе, что было бы очень ценно.