GUI компоненты, графики и диаграммы. - PullRequest
0 голосов
/ 24 января 2012

Хорошо, я в тупике. Кто-нибудь знает простой метод для Java с использованием NetBeans, который будет рисовать график (предпочтительно круговую диаграмму) с использованием компонента рисования на jPanel?

Я гуглил, исследовал и не могу найти прямой ответ. Я все еще учусь, и это последний компонент моего финала для этого класса. Мне нужен только метод, если кто-нибудь знает простой способ сделать это. Его не нужно менять, поскольку требование гласит, что мне нужна только графика; логика программы анализируется из temp.textField. Любая помощь или направление очень ценится.

P.S. Да, я пробовал JFreeCharts.

private void jPanel1ComponentShown(java.awt.event.ComponentEvent evt) {

    // Bar graph component and logic. 

    BorderLayout panelMapLayout = new BorderLayout();

    jPanel1.setLayout(panelMapLayout);
    jPanel1.add(Graph, BorderLayout.CENTER);

    JFrame fr = new JFrame();
   final int width = 300;
   final int height = 400;
   fr.setSize(width, height);
   fr.setTitle("Grade Bar Graph");
   fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   fr.setVisible(true);
   String str = JOptionPane.showInputDialog("What is the String file name?");
    barGraphComponent component = new barGraphComponent();

    fr.setVisible(true);


}

Выше мой код - только часть, но я думаю, что это будет работать. У кого-нибудь есть идеи, как я могу добавить к этому логику? При необходимости я выкину весь код. Мне не нужно его менять, только отображать начальный набор целых чисел; но как мне получить эти целые числа в моем графике?

1 Ответ

0 голосов
/ 24 января 2012

Используйте банки JCommon & JFreechart.
Я надеюсь, ты можешь пойти с этим ..!

import java.io.File;
import java.io.IOException;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;

  public class JavaApplication3 {
        DefaultCategoryDataset categoryDataset;
        private String YaxisXaxis = "Hospital mortality rate";
        private String Xaxis[] = {"2009APR-2010MAR", "2010APR-2011MAR", "2011APR-2011NOV"};
        double val[] = {1.7879989, 1.6252073, 1.5941324};
     JFreeChart chart ;
        public void getinput() {              
        }
        void setinp() {
            categoryDataset = new DefaultCategoryDataset();
            for (int i = 0; i < val.length; i++) {
                categoryDataset.setValue(val[i], YaxisXaxis, Xaxis[i]);
            }
        }
        void drawcharts(){
             chart = ChartFactory.createBarChart3D("XYZ HOSPITALS", // Title
                          "Year",              // X-Axis label
                          "Number of Students",// Y-Axis label
                          categoryDataset,         // Dataset
                          PlotOrientation.VERTICAL,
                          true,                     // Show legend
                          true,
                          false
                         );
        }
        void savechart()
        {
                  String fileName="d:/sp.jpg";
            try {
                /**
                 * This utility saves the JFreeChart as a JPEG
                 * First Parameter: FileName
                 * Second Parameter: Chart To Save
                 * Third Parameter: Height Of Picture
                 * Fourth Parameter: Width Of Picture
                 */
            ChartUtilities.saveChartAsJPEG(new File(fileName), chart, 800, 600);
        } catch (IOException e) {
            System.err.println("Problem occurred creating chart.");
        }
        }
        public static void main(String[] args) {
            // TODO code application logic here
           JavaApplication3 obj =new  JavaApplication3();
           obj.setinp();
           obj.drawcharts();
           obj.savechart();

        }
    }

Попробуйте этот пример ... Вы можете легко получить ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...