JButton sind auf JPanel, auf dem es nicht sein soll [closed]

Hi das ist mein konkretes Problem. Ich habe versucht, einem Panel mit for loop eine Schaltfläche hinzuzufügen.

Dies ist eine for-Schleife zum Erstellen von JButtons.

nizButtona=new JButton[22];
for(int i=0;i<nizButtona.length;i++){

    nizButtona[i] = new JButton();
    if(i==0){
    nizButtona[i].setText("Započni kviz"); //Start quiz
    nizButtona[i].addActionListener(new ActionListener(){
         @Override 
        public void actionPerformed(ActionEvent e){
            cl.next(nizPanela[1]);
        }
    });
    }else if(i==1){
        nizButtona[i].setText("Izlaz"); //Quit
        nizButtona[i].addActionListener(new ActionListener(){
            @Override
            public void actionPerformed(ActionEvent e){
                System.exit(0);
            }
        });
        }else if(i<12){
        nizButtona[i].setText("Sledeće pitanje"); //Next question, on next panel
        nizButtona[i].addActionListener(new ActionListener(){
                @Override
                public void actionPerformed(ActionEvent e){
                    cl.next(nizPanela[1]);
                }
            });
    }

Dies ist eine neue Schleife zum Hinzufügen von Schaltflächen in Bedienfeldern. Hier ist nizButtona [i-1] i-1, weil die erste Schaltfläche für die nächste Frage für 1 Argument steht als JPanel, wo es hinzugefügt werden muss, und Sie GridBagLayout für alle Komponenten, damit ich alle für jedes Panel an die gleiche Stelle lege. Ohne das ist das Problem dasselbe.

     for(int i=3;i<=11;i++){
        nizPanela[i].add(nizButtona[i-1]);
    }

Hier ist, wie ich Array für JPanels erstellt wurde.

nizPanela = neues JPanel [13];

    for (int i=0;i<nizPanela.length;i++ ){

        nizPanela[i] = new JPanel();

        if(i<=1){
        okvir.getContentPane().add(nizPanela[i]);//Does i real need this getContentPane?
        }else{
            nizPanela[i].setLayout(new GridBagLayout());
            nizPanela[1].add(nizPanela[i], String.valueOf(i));
        }

    }
    cl=new CardLayout();

    nizPanela[1].setLayout(cl); 

    cl.show(nizPanela[1],"2");

So sieht das Programm ausFot Button Sledeće pitanje auf diesem Panel sichtbar, aber es sollte nicht sein. Es ist nur sichtbar, wenn ich den Mauszeiger durch die Stelle dieser Schaltfläche bewege.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage