【问题标题】:Pie charts to a JPanel netbeans饼图到 JPanel netbeans
【发布时间】:2020-05-16 04:55:41
【问题描述】:

我正在尝试向我的用户界面添加一些图形图表,用户界面有一个单独的按钮来查看饼图,当它单击图表应该出现在面板中时,我尝试了此代码

DefaultPieDataset defaultPieDataset = new DefaultPieDataset();
        defaultPieDataset.setValue("Monday", new Integer(0));
        defaultPieDataset.setValue("Tuesday", new Integer(2));
        defaultPieDataset.setValue("Wednesday", new Integer(1));
        defaultPieDataset.setValue("Thursday", new Integer(2));
        defaultPieDataset.setValue("Friday", new Integer(0));
        defaultPieDataset.setValue("Saturday", new Integer(3));
        defaultPieDataset.setValue("Sunday", new Integer(2));
        JFreeChart chart = ChartFactory.createPieChart(Daily Usage", defaultPieDataset, true, true, true);
        PiePlot p = (PiePlot)chart.getPlot();
        p.setDirection(Rotation.CLOCKWISE);
        ChartFrame frame = new ChartFrame("Daily Usage", chart);
        frame.setVisible(true);
        frame.setSize(500,500);
        frame.setLocationRelativeTo(null);

但是这使用了一个框架而不是一个面板,有什么方法可以在 jpanel 中显示这个 o。我没有使用任何框架

【问题讨论】:

    标签: java swing jpanel frame pie-chart


    【解决方案1】:

    您可以将图表添加到ChartPanel,而不是框架,您将拥有JPanel

    下面是 JFrame 内的 ChartPanel 的完整示例,其中也包含典型的 JPanel:

    public class ChartPanelExample extends JFrame {
        public ChartPanelExample() {
            super("");
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setLayout(new BorderLayout());
    
            JPanel topPanel = new JPanel(new FlowLayout());
    
            JButton button = new JButton("Something");
            topPanel.add(button);
    
            JLabel label = new JLabel("This is another JPanel");
            topPanel.add(label);
    
            add(topPanel, BorderLayout.PAGE_START);
    
            DefaultPieDataset defaultPieDataset = new DefaultPieDataset();
            defaultPieDataset.setValue("Monday", new Integer(0));
            defaultPieDataset.setValue("Tuesday", new Integer(2));
            defaultPieDataset.setValue("Wednesday", new Integer(1));
            defaultPieDataset.setValue("Thursday", new Integer(2));
            defaultPieDataset.setValue("Friday", new Integer(0));
            defaultPieDataset.setValue("Saturday", new Integer(3));
            defaultPieDataset.setValue("Sunday", new Integer(2));
            JFreeChart chart = ChartFactory.createPieChart("Daily Usage", defaultPieDataset, true, true, true);
            PiePlot p = (PiePlot) chart.getPlot();
            p.setDirection(Rotation.CLOCKWISE);
    
            ChartPanel chartPanel = new ChartPanel(chart);
    
            add(chartPanel, BorderLayout.CENTER);
    
            setLocationByPlatform(true);
            pack();
        }
    
        public static void main(String[] args) {
            SwingUtilities.invokeLater(() -> new ChartPanelExample().setVisible(true));
        }
    }
    

    【讨论】:

    • ChartPanel frame = new ChartPanel(chart); jPanel9 = frame; 我把这个绑了,但这不起作用
    • @ProgrammingTutorials “这不起作用”是什么意思?
    • 图表没有出现在jPanel中
    猜你喜欢
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    相关资源
    最近更新 更多