Grafico com Cores Estáticas - Jfreechart

2 respostas
Bruno_Olinda

Bom dia pessoal.

Alguém poderia me ajudar, estou com problemas com um gráfico de barras que fiz com o jfreechart, estou fazendo um software para representar a memoria no sistema, ai cada vez que coloco um novo processo na memoria de tamanho n, ele representa no grafico, so que as areas que estivesem livres eu queria que ficassem de uma unica cor, e ele fica atualizando e mudando as cores dos processos a cada atualizaçãodeixando o gafico muito colorido, teria como deixar apenas com uma unica cor o processo que representasse a parte livre do sistema.

private static CategoryDataset createDataset()
	{

		DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
		int cont=0;
		String nomeProcesso="";
		Collections.sort (memOcupada, new Comparator() {
			public int compare(Object o1, Object o2) {
				Processo p1 = (Processo) o1;
				Processo p2 = (Processo) o2;
				return p1.ini < p2.ini ? -1 : (p1.ini > p2.ini ? +1 : 0);
			}
		});
		
		for(int i=0;i<memOcupada.size();i++){
			Processo p = (Processo) memOcupada.get(i);
			defaultcategorydataset.addValue(p.mem,p.getNome()+" ("+((p.mem*100)/memoriaTotal)+"%)", "Livres");
		}

		for(int i=0;i<fila.size();i++){
			Processo p = (Processo) fila.get(i);
			defaultcategorydataset.addValue(p.mem,p.getNome()+" ("+((p.mem*100)/memoriaTotal)+"%)", "Fila");
		}
        
		defaultcategorydataset.addValue(memoriaTotal, "Memória Total", "Memória Total");

		return defaultcategorydataset;
	}

	private static JFreeChart createChart(CategoryDataset categorydataset)
	{
		JFreeChart jfreechart = ChartFactory.createStackedBarChart("Gráfico de Utilização de Memória", "", "Memória RAM", categorydataset, PlotOrientation.VERTICAL, true, true, false);
		jfreechart.setBackgroundPaint(Color.white);
		CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();
		categoryplot.setBackgroundPaint(Color.white);
		categoryplot.setRangeGridlinePaint(Color.black);               
		StackedBarRenderer stackedbarrenderer = (StackedBarRenderer)categoryplot.getRenderer();
		stackedbarrenderer.setDrawBarOutline(false);
		stackedbarrenderer.setItemLabelsVisible(true);
		stackedbarrenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());       

		return jfreechart;
	}

	public static JPanel createDemoPanel()
	{
		JFreeChart jfreechart = createChart(createDataset());
		return new ChartPanel(jfreechart);
	}

Desde ja agradeço :slight_smile:

2 Respostas

Bruno_Olinda

Se alguem puder me ajudar eu agradeço estou precisando disso com urgência e não sei mais o q fazer. :?

Fernando_Generoso_da

O gráfico mostra para cada série diferente, uma cor…o jeito seria tu juntar em uma única série todos os processos que representa a parte livre do sistema.

Fernando

Criado 26 de novembro de 2009
Ultima resposta 26 de nov. de 2009
Respostas 2
Participantes 2