Estou começando a usar o JFreeChart e queria uma ajuda,
estou fazendo uma interface grafica com o Scatter Plot. E queria fazer com que quando eu clicasse em algum plot abrisse uma janela (JFrame ou JPanel) aparecendo uma lista ou algo assim.
Eu consigo fazer isso dentro do mouseclicked? Como seria o código?
Obrigado.
Acho que você está usando um ChartPanel, correto? Experimente o seguinte:
// Limpa as rotinas padrão para processamento de cliques do mouse
MouseListener ml[] = chartPanel.getMouseListeners();
if (ml != null) {
for (int i = 0; i < ml.length; i++) {
chartPanel.removeMouseListener(ml[i]);
}
}
// Registra rotinas especializadas para processar cliques e
// movimentação do mouse
ChartMouseListener cml = new ChartMouseListener() {
@Override public void chartMouseClicked(ChartMouseEvent event) {
// Sua rotina aqui
}
@Override public void chartMouseMoved(ChartMouseEvent event) {
// Sua rotina aqui
}
};
chartPanel.addChartMouseListener(cml);
Sim sim, estou usando chartpanel. Seu modelo funcionou perfeitamente, mas agora surgiu outra dúvida…
o que eu uso para associar essa “abertura de janela” a um plot especifico?
a saída seria o seguinte - quando eu clico em um determinado plot no grafico, abriria o JFrame (ja implementado).
O parâmetro [event] nos métodos chartMouseClicked() e chartMouseMoved() oferece os métodos getChart() e getEntity(), que lhe permitem identificar o Chart e o Plot aos quais o evento se refere.
Ah sim, não sabia desses métodos. Vou tentar fazer com que funcione.
Obrigado Roger.
Tentei e tentei mas não consegui fazer funcionar corretamente.
Poderia me mostrar um exemplo de como funciona o getChart() e o getEntity()?