Podmiana jPanel

Podmiana jPanel
GarryMoveOut
  • Rejestracja:około 11 lat
  • Ostatnio:3 miesiące
  • Postów:59
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.

Kopiuj
		
//...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.

GarryMoveOut
  • Rejestracja:około 11 lat
  • Ostatnio:3 miesiące
  • Postów:59
0

Rozwiązałem swój problem.

Kopiuj
 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();

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.