Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 单击条形图或条形图时打开新的框架或图表_Java_Swing_Charts_Jfreechart - Fatal编程技术网

Java 单击条形图或条形图时打开新的框架或图表

Java 单击条形图或条形图时打开新的框架或图表,java,swing,charts,jfreechart,Java,Swing,Charts,Jfreechart,我有一个从mysql数据库获取数据集的条形图,我一直在使用chartMouseClicked。目前,正如我在上一篇文章中了解到的那样,当单击x轴或y轴上的某个条形图并打开一个新的框架或图表时,代码会在其中打印,但如何设置。另外,一个信息框也可以 private void lineChart() { // *************** ADDING BAR CHART FROM DATABASE ***************************** try { String sq

我有一个从mysql数据库获取数据集的条形图,我一直在使用
chartMouseClicked
。目前,正如我在上一篇文章中了解到的那样,当单击x轴或y轴上的某个条形图并打开一个新的框架或图表时,代码会在其中打印,但如何设置。另外,一个信息框也可以

private void lineChart() {
// *************** ADDING BAR CHART FROM DATABASE *****************************

try {
    String sql = "select Region, Male, Female from ObeseLondon limit 14";
    JDBCCategoryDataset dataset = new JDBCCategoryDataset(MySQL.Connectdb(), sql);
    JFreeChart chart = ChartFactory.createBarChart("", "Town", "No. Of Obese People", dataset, PlotOrientation.HORIZONTAL, true, true, true);
    chart.setBackgroundPaint(Color.white);
    BarRenderer render = null;
    //CategoryPlot plot = null;
    CategoryPlot plot = (CategoryPlot) chart.getPlot();
    plot.getRenderer().setSeriesPaint(0, Color.green);
    plot.getRenderer().setSeriesPaint(1, Color.yellow);
    render = new BarRenderer();

    org.jfree.chart.ChartFrame chartframe = new org.jfree.chart.ChartFrame("Query Chart", chart);
    //chartframe.setVisible(true);
    //chartframe.setSize(200,500);
    panelBarChart.setLayout(new java.awt.BorderLayout());
    ChartPanel chartPanel = new ChartPanel(chart);
    panelBarChart.add(chartPanel);
    panelBarChart.validate();
    chartPanel.addChartMouseListener(new ChartMouseListener() {

@Override
public void chartMouseClicked(ChartMouseEvent event) {
    ChartEntity entity = event.getEntity();
    System.out.println(entity);
}

@Override
public void chartMouseMoved(ChartMouseEvent event) {
}

在处理程序中打开一个
JOptionPane
,如添加到的
ChartMouseListener
中所示。该窗格显示一个标签面板,如本节所示,但嵌套的
图表面板
也可以使用

@Override
public void chartMouseClicked(ChartMouseEvent event) {
    CategoryItemEntity entity = (CategoryItemEntity) event.getEntity();
    JPanel panel = new JPanel(new GridLayout(0, 1));
    Comparable row = entity.getRowKey();
    Comparable col = entity.getColumnKey();
    panel.add(new JLabel(String.valueOf(row)));
    panel.add(new JLabel(String.valueOf(col)));
    panel.add(new JLabel(String.valueOf(entity.getDataset().getValue(row, col))));
    JOptionPane.showMessageDialog(rootPane, panel);
}