Как я могу получить все эти формы в одну структуру данных? Java - PullRequest
0 голосов
/ 20 апреля 2020

Данные:

  1. Я кодирую в Java.
  2. Я делаю это GUI Формы, которые мне предоставляет IntelliJ IDE.
  3. У меня есть этот класс 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 кода, который я показываю ..

но когда я пытаюсь отправить какой-либо из пунктов сообщение, оно говорит следующее

Если кто-нибудь может дать мне некоторое представление о том, как я могу получить все это формирует (разных типов данных) в единую структуру и отправляет им сообщения вместе, что было бы очень ценно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...