Menampilkan Barchart dalam ZK

Hal yang paling dibutuhkan pada sebuah framework ajax adalah kemampuannya untuk menampilkan chart. Dalam ZK Framework hal ini dimungkinkan dengan menggunakan JFreechart. Pada contoh berikut saya mencoba membuat Barchart yang dihasilkan oleh JFreechart dan ditampilkan pada sebuah component Image dalam ZK.
Pada halaman .zul pastikan terdapat component Image sebagai tempat kita meletakan output chartnya.

<!--others component here-->
<img id="chartImg" alt="" />
<!--others component here-->

Selanjutnya kita gunakan JFreechart untuk menghasilkan barchart sesuai dataset yang kita inginkan

//others code..
 CategoryDataset dataset = CreateDateset.create();
 ChartFactory.setChartTheme(StandardChartTheme.createLegacyTheme());
            BarRenderer.setDefaultBarPainter(new StandardBarPainter());

            if (cmbProgdi.getSelectedItem().getValue() == null) {
                chart = ChartFactory.createBarChart(
                        "Jumlah Mahasiswa", // chart title
                        "Program Studi", // domain axis label
                        "Jumlah Mahasiswa", // range axis label
                        dataset, // data
                        PlotOrientation.HORIZONTAL,
                        true, // include legend
                        true,
                        false);
            } else {
                chart = ChartFactory.createBarChart(
                        "Jumlah Mahasiswa", // chart title
                        "Program Studi", // domain axis label
                        "Jumlah Mahasiswa", // range axis label
                        dataset, // data
                        PlotOrientation.VERTICAL,
                        true, // include legend
                        true,
                        false);
            }

            chart.setBackgroundPaint(new Color(0xCC, 0xFF, 0xCC));

            final CategoryPlot plot = chart.getCategoryPlot();
            plot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_LEFT);
            plot.setRangeAxisLocation(AxisLocation.TOP_OR_LEFT);
            plot.getRangeAxis().setStandardTickUnits(NumberAxis.createIntegerTickUnits());

            //ngatur warna barchart
            final CategoryItemRenderer renderer1 = plot.getRenderer();
            for (int x = 0; x <= 34; x++) {
                renderer1.setSeriesPaint(x, new WarnaBarChart().getColor(x));
            }

            BarRenderer br = (BarRenderer) renderer1;
            br.setShadowVisible(false);

            BufferedImage bi = chart.createBufferedImage(900, 500, BufferedImage.TRANSLUCENT, null);
            if (cmbProgdi.getSelectedItem().getValue() == null) {
                bi = chart.createBufferedImage(900, 2000, BufferedImage.TRANSLUCENT, null);
            }

            byte[] bytes = EncoderUtil.encode(bi, ImageFormat.PNG, true);

            AImage image = new AImage("Bar Chart", bytes);
            chartImg.setContent(image);
//other code..

Pada baris terakhir code di atas kita mengirimkan output dalam bentuk image yang dihasilkan oleh Jfreechart ke dalam component Image yang ada pada halaman ZK.

 

Video Tutorial Java

2 Responses to Menampilkan Barchart dalam ZK

  1. ahmad says:

    mas, saya sduah masuk ke web nya ZK, download yang mana ya untuk bisa mencoba latihan di aats…
    ??

    saya pakai netvbeans

  2. Hendro Steven says:

    kalo pake netbeans download plugin zk untuk netbeans.. silahkan googling dengan keyword “zk rem netbeans” kalo pake eclipse langsung download aja zk studio di sitenya zk. thanks

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: