Witam,

Potrzebuje pomocy bo mecze sie i nic nie wychodzi wiec prawdopodobnie robie jakis podstawowy blad. Chodzi o rozklad JPaneli w JFrame. Metoda startFirstRecord dodaje manualnie pierwszy JPanel z trzema elementami w srodki (2x JLabel i 1x JButton) uzyem tutaj GridLayoutu i to po odpaleniu programu prezentuje sie dobrze. Problem pojawia sie gdy odpalam metoda restRecord i startuje petla, ktora dodaje nowe recordy do Mapy a co za tym idzie powinny dodawac sie nowe JPanele do okna. Wszysto sie rozjezdza lub jest niewidoczne wcale.
Ponizej kod oraz moj zmamysl jak chce zeby to wygladalo
Edytowalam kod, jednak podczas odpalania okno jest wciaz male dopiero jak je powieksze widze rekord

obraz


public Swing() throws IOException {

      
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setLocation(500, 100);
        f.setLayout(new BorderLayout());
        f.pack();

        f.setLocationRelativeTo(null);
        f.setVisible(true);

    }



public void startFirstRecord2() {
        JPanel panel1 = new JPanel(new GridBagLayout());
        JLabel label1 = new JLabel(licname);
        label1.setIcon(new ImageIcon("C:/Users/tab.jpg"));
        label1.setFont(new Font("Verdana", Font.PLAIN, 18));
        label1.setHorizontalTextPosition(JLabel.CENTER);
        label1.setVerticalTextPosition(JLabel.CENTER);
        JLabel name = new JLabel("Name: " + fullname);
        JLabel data = new JLabel(String.valueOf(currentdata));
        details1 = new JButton("Details");
        details1.addActionListener(this);

        GridBagConstraints gbc = new GridBagConstraints();
        gbc.gridx = 0;
        gbc.gridy = 0;

        panel1.add(label1, gbc);
        gbc.gridx++;
        panel1.add(details1, gbc);
        gbc.gridx = 0;
        gbc.gridy++;
        panel1.add(name, gbc);
        gbc.gridx++;
        panel1.add(data, gbc);

        f.add(panel1);


    }

    public void restRecords2(){
        ArrayList<JPanel> label = new ArrayList<>();
        for (int i = 1; i < vehiclelist.size(); i++) {
            JPanel panel2 = new JPanel(new GridBagLayout());
            JButton details2 = new JButton("Details");
            JLabel name2 = new JLabel("Name: " + fullname);
            JLabel data2 = new JLabel(String.valueOf(currentdata));
            label2 = new JLabel(licname);
            label2.setIcon(new ImageIcon("C:/Users/tab.jpg"));
            label2.setFont(new Font("Verdana", Font.PLAIN, 18));
            label2.setHorizontalTextPosition(JLabel.CENTER);
            label2.setVerticalTextPosition(JLabel.CENTER);

            GridBagConstraints gbc = new GridBagConstraints();
            gbc.gridx = 0;
            gbc.gridy = 0;
            panel2.add(label2, gbc);
            gbc.gridx++;
            panel2.add(details2, gbc);
            gbc.gridx = 0;
            gbc.gridy++;
            panel2.add(name2, gbc);
            gbc.gridx++;
            panel2.add(data2, gbc);
            label.add(panel2);
        }
        JPanel p = new JPanel();
        GridBagConstraints gbc = new GridBagConstraints();
        gbc.fill = gbc.HORIZONTAL;
        gbc.weightx = 1;
        gbc.gridwidth = GridBagConstraints.REMAINDER;
        for(JPanel j:label) {
            p.add(j,gbc);
        }
        gbc.weighty = 1;
        f.add(p);
        f.repaint();
    }