Podmiana jPanel

0

Program rysuje jakieś tam wykresy przy użyciu jFreeChart. Chcę aby po uruhomieniu programu było puste pole (to mam). Po naciśnieciu przycisku 1 wyświetlał się pierszy wykres. A po naciśnieciu 2 przycisku kasował się ten poprzedni wykres i w jego miejsce wstawiał się nowy wykres.


//...konstruktor okna
                pWykres = new JPanel();
        getContentPane().add(pWykres, BorderLayout.CENTER);
        setSize(620, 460);

        //region Menu
        JPanel pMenu = new JPanel();
        getContentPane().add(pMenu, BorderLayout.SOUTH);

        btnRysuj = new JButton("Rysuj");
        pMenu.add(btnRysuj);

        btnRysuj2 = new JButton("Rysuj2");
        pMenu.add(btnRysuj2);
        //endregion
    }

//tworzy wykres
        public void createChartPanel() {
        if(java.util.Arrays.asList(getComponents()).contains(pWykres)){ //nigdy tutaj nie wchodzi
            getContentPane().remove(pWykres);
        }

        String chartTitle = "Objects Movement Chart";
        String xAxisLabel = "X";
        String yAxisLabel = "Y";

        JFreeChart chart = ChartFactory.createXYLineChart(chartTitle,
                xAxisLabel, yAxisLabel, dataset);

        customizeChart(chart);

        pWykres = new ChartPanel(chart);
        getContentPane().add(pWykres, BorderLayout.CENTER);
        setSize(620, 460);
        repaint();
    } 

Wynik końcowy jest taki że wykres się nie pojawia i mogę klikać do woli na przyciski. Chociaż te reagują bo debugger pokazuje że tam wchodzi i nowe dane są generowane a za każdym kliknięciem przechodzę przez metodę createChartPanel() z tym że nic się nie dzieje.

0

Rozwiązałem swój problem.

 pWykres = new JPanel();
        getContentPane().add(pWykres, BorderLayout.CENTER);
        setSize(620, 460);

        //region Menu
        JPanel pMenu = new JPanel();
        getContentPane().add(pMenu, BorderLayout.SOUTH);

        btnRysuj = new JButton("Rysuj");
        pMenu.add(btnRysuj);

        btnRysuj2 = new JButton("Rysuj2");
        pMenu.add(btnRysuj2);
        //endregion
    }

    //region utworzenie panelu z wykresem
    public void createChartPanel() {
        //pWykres = new JPanel();
        //if(java.util.Arrays.asList(getComponents()).contains(pWykres)){
            //getContentPane().remove(pWykres);
        //}
        if(pWykres != null){
            pWykres.removeAll();
            pWykres.revalidate();
        }

        String chartTitle = "Objects Movement Chart";
        String xAxisLabel = "X";
        String yAxisLabel = "Y";

        JFreeChart chart = ChartFactory.createXYLineChart(chartTitle,
                xAxisLabel, yAxisLabel, dataset);

        customizeChart(chart);

        pWykres = new ChartPanel(chart);
        getContentPane().add(pWykres, BorderLayout.CENTER);
        setSize(620, 460);
        //validate();
        pWykres.repaint();

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0