通过java中的jtable值填充barchart

时间:2016-07-23 13:06:28

标签: java jtable jfreechart

我有一个jtable我想在absciss中显示字符列我尝试了这个代码,把每个列放在一个数组中但它没有显示任何内容,当我调试它时没有输入异常而且没有在consol中的消息。

public void Graph() {
    try {
        DefaultCategoryDataset base = new DefaultCategoryDataset();

        Character[] letters = new Character[table.getRowCount()];
        Integer[] frequences = new Integer[table.getRowCount()];

        int i;
        for (i = 0; i < table.getRowCount(); i++) {
            letters[i] = (Character) table.getValueAt(i, 0);
            frequences[i] = (Integer) table.getValueAt(i, 1);
            base.setValue(frequences[i], "Fréquences", letters[i]);
        }

        JFreeChart graph = ChartFactory.createBarChart3D(
                "Diagramme des Fréquences",//titre
                "Lettres", //abscisses
                "Fréquences", //ordonnées
                base, //data
                PlotOrientation.VERTICAL,
                false, //legende
                true, //tooltips
                false //URLs
        );
        ChartPanel Panel = new ChartPanel(graph);
        panelGraph.removeAll();
        panelGraph.add(Panel, BorderLayout.CENTER);
        panelGraph.validate();
        CategoryPlot p = graph.getCategoryPlot();
        // set the range axis to display integers only...
        final NumberAxis rangeAxis = (NumberAxis) p.getRangeAxis();
        rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }
}

运行时会填充jtable,但图表不会显示

1 个答案:

答案 0 :(得分:0)

您可以尝试在JavaFX 8中使用Oracles实现的条形图: Tutorial

如果您不想在整个应用程序中使用JavaFX 8,您也可以使用JFXPanelTutorial

在Swing中实现它