Membuat Object PieChart dengan Java NetBeans

PieChart Java NetBeans



Bertemu lagi ,Der...!!
kali ini saya akan memberikan sedikit pengetahuan saya dengan membagikan code seputar pemrograman java object , kali ini saya menggunakan platform Java NetBeans IDE 8.1 jika belum punya alangkah baiknya untuk menginstall terlebih dahulu ,der....!!
silahkan download melalui website reminya : https://netbeans.org/

Maaf ,Der...!! saat ini saya tidak membahas cara menginstall NetBeans nya ,lain kali bila ada waktu saya share di sini .

Langsung aja deh topik utamanya untuk Membuat Object PieChart dengan Java NetBeans
Langkah-langkahnya :
  1. Buatlah project baru ,misal : Latihan
  2. Buatlah 2 Java Class ( beri nama Canvas.class dan MainPanel.class ).


Selanjutnya copy source code dibawah ini ,kemudian paste-kan di dalam Canvas.class -nya .
package Latihan;

import java.awt.geom.GeneralPath;
import javax.swing.JFrame;
/**
 *
 * @author ACER
 */
public class Canvas {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        JFrame frame= new JFrame();
        frame.setTitle("Aplikasi Komputer Grafik Pertama Saya :");
        frame.setLocationRelativeTo(frame);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       
        MainPanel panel= new MainPanel();
        frame.getContentPane().add(panel);
        frame.pack();
        frame.setVisible(true);
       
        GeneralPath p = new GeneralPath(GeneralPath.WIND_NON_ZERO);
        p.moveTo(100.f, 0);
    }
}


 Selanjutnya copy source code dibawah ini ,kemudian paste-kan di dalam MainPanel.class -nya .
package Latihan;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.Shape;
import java.awt.geom.Arc2D;
import java.awt.geom.Rectangle2D;
import javax.swing.JPanel;

/**
 *
 * @author ACER
 */
public class PieChart extends JPanel{
    String [] nilaiUjian={"A","B","C","D","E"};
    int [] jmlMahasiswa={3,10,23,5,2};
    Color [] warna={Color.BLUE,Color.ORANGE,Color.YELLOW,Color.GREEN,Color.RED};
   
    public PieChart(){
        this.setPreferredSize(new Dimension(400, 400));
        this.setBackground(Color.WHITE);
    }
    @Override
    public void paintComponent(Graphics g){
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
       
        //gunakan Antialias,Agas hasil bagus
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,      RenderingHints.VALUE_ANTIALIAS_ON);
       
        //Frame Background
        Shape bg=new Rectangle2D.Float(10, 10, 250, 200);
        g2.setColor(Color.LIGHT_GRAY);
        g2.fill(bg);
        g2.setColor(Color.GRAY);
        g2.draw(bg);
       
        //Hitung Total
        Float total = 0.0f;
        for(int k=0;k<jmlMahasiswa.length;k++)
            total+=jmlMahasiswa[k];
       
        //Menghitung Sudut tiap Sektor
        float sudut,awal=90;    //Sudut PIE
        float lx = 220,ly = 70,lw = 10,lh = 10;     //Legend
        for(int k=0;k<jmlMahasiswa.length;k++){
            //Hitung Besar sudut tiap Sektor
            sudut=360.0f*jmlMahasiswa[k]/total;
            Shape sektor = new Arc2D.Float(30, 30, 150, 150,awal,sudut,Arc2D.PIE);

            //Tampilkan Render PIE
            g2.setColor(warna[k]);
            g2.fill(sektor);
            awal+=sudut;
       
            //Legend
            g2.fill(new Rectangle2D.Float(lx, ly, lw, lh));
            g2.setColor(Color.BLACK);
            g2.drawString(nilaiUjian[k], lx+lw+5, ly+lh);
            ly += (lh+5);
        }
        //Signature
        g2.setColor(Color.GRAY);
        g2.drawString("Created by.Rifqi Abrory", 15, 205);
        g2.drawString("Universitas Pamulang", 40, 27);
    }
}


Selesai .
Selanjutnya tinggal di running aja ,misal dengan SHIFT + F6 .

Good Luck, Der...
Happy Code ,Ya ..!!!


Label: ,

Post a Comment

[disqus][facebook]

Author Name

{facebook#https://facebook.com/rifqi.abrory} {twitter#https://facebook.com/rifqi.abrory} {google#https://facebook.com/rifqi.abrory} {pinterest#https://facebook.com/rifqi.abrory} {youtube#https://facebook.com/rifqi.abrory} {instagram#https://facebook.com/rifqi.abrory}

Contact Form

Name

Email *

Message *

Powered by Blogger.