newbieilmu
Would you like to react to this message? Create an account in a few clicks or log in to continue.



 
IndeksLatest imagesPencarianPendaftaranLogin

 

 Membuat chart bar di java

Go down 
PengirimMessage
Admin
Admin



Jumlah posting : 2
Join date : 14.01.12

Membuat chart bar di java Empty
PostSubyek: Membuat chart bar di java   Membuat chart bar di java EmptyFri Feb 03, 2012 8:34 am

Dalam series Java Grafis kali ini, kita akan menunjukkan cara menggambar grafik bar sederhana di Java. Sebuah bar chart (grafik batang) adalah cara untuk membandingkan dua atau lebih nilai menggunakan bar persegi panjang dengan panjang. Bar bisa horizontal atau vertikal berorientasi. Kami menyediakan sebuah contoh yang menunjukkan grafik Bar di Java.

Untuk menggambar bar chart, variabel MinValue, maxvalue tipe double didefinisikan. Lebar bar ditentukan oleh clientWidth / value.length. Kelas FontMetrics mendefinisikan objek huruf metrik yang merangkum informasi tentang rendering font tertentu pada layar tertentu. Kelas font merupakan font. Font “Book Antiqua ‘didefinisikan di konstruktor kelas Font.

Para metode getAscent() menentukan pendakian font ,font dijelaskan oleh objek FontMetrics. Pendakian font adalah jarak dari dasar font itu ke bagian atas karakter alfanumerik.metode getDescent() menentukan keturunan font.metode getHeight() mendapatkan ketinggian standar baris teks di font.
Berikut syntaxnya :
Code:
package DemoChartBar;

import java.awt.*;
import javax.swing.*;
import com.jtattoo.plaf.mcwin.McWinLookAndFeel;
import java.awt.event.*;
/*
 * @Anugrah Bagus Susilo
 */
  public class SampleBarChart extends JPanel {
  private double[] value;
  private String[] languages;
  private String title;

  public SampleBarChart(double[] val, String[] lang, String t) {
  languages = lang;
  value = val;
  title = t;
  }
  public void paintComponent(Graphics graphics) {
  super.paintComponent(graphics);
  if (value == null || value.length == 0)
  return;
  double minValue = 0;
  double maxValue = 0;
  for (int i = 0; i < value.length; i++) {
  if (minValue > value[i])
  minValue = value[i];
  if (maxValue < value[i])
  maxValue = value[i];
  }
  Dimension dim = getSize();
  int clientWidth = dim.width;
  int clientHeight = dim.height;
  int barWidth = clientWidth / value.length;
  Font titleFont = new Font("Book Antiqua", Font.BOLD, 15);
  FontMetrics titleFontMetrics = graphics.getFontMetrics(titleFont);
  Font labelFont = new Font("Book Antiqua", Font.PLAIN, 10);
  FontMetrics labelFontMetrics = graphics.getFontMetrics(labelFont);
  int titleWidth = titleFontMetrics.stringWidth(title);
  int q = titleFontMetrics.getAscent();
  int p = (clientWidth - titleWidth) / 2;
  graphics.setFont(titleFont);
  graphics.drawString(title, p, q);
  int top = titleFontMetrics.getHeight();
  int bottom = labelFontMetrics.getHeight();
  if (maxValue == minValue)
  return;
  double scale = (clientHeight - top - bottom) / (maxValue - minValue);
  q = clientHeight - labelFontMetrics.getDescent();
  graphics.setFont(labelFont);
  for (int j = 0; j < value.length; j++) {
  int valueP = j * barWidth + 1;
  int valueQ = top;
  int height = (int) (value[j] * scale);
  if (value[j] >= 0)
  valueQ += (int) ((maxValue - value[j]) * scale);
  else {
  valueQ += (int) (maxValue * scale);
  height = -height;
  }
  graphics.setColor(Color.DARK_GRAY);
  graphics.fillRect(valueP, valueQ, barWidth - 2, height);
  graphics.setColor(Color.black);
  graphics.drawRect(valueP, valueQ, barWidth - 2, height);
  int labelWidth = labelFontMetrics.stringWidth(languages[j]);
  p = j * barWidth + (barWidth - labelWidth) / 2;
  graphics.drawString(languages[j], p, q);
  }
  }
 public static void main(String[] args) throws UnsupportedLookAndFeelException {
  UIManager.setLookAndFeel(new McWinLookAndFeel());
  JFrame frame = new JFrame();
  frame.setSize(350, 300);
  double[] value= new double[5];
  String[] languages = new String[5];
  value[0] = 1;
  languages[0] = "Spring";

  value[1] = 2;
  languages[1] = "JSF";

  value[2] = 3;
  languages[2] = "Struts";

  value[3] = 4;
  languages[3] = "EJB";

  value[4] = 5;
  languages[4] = "JPA";
  frame.getContentPane().add(new SampleBarChart(value, languages,
    "Framework Java"));

  WindowListener winListener = new WindowAdapter() {
  public void windowClosing(WindowEvent event) {
  System.exit(0);
  }
  };
  frame.addWindowListener(winListener);
  frame.setVisible(true);
  }
}

Bila syntax anda benar ,maka setelah di compile akan muncul sebuah chart seperti tampilan di desktop saya berikut
Membuat chart bar di java Chartjava

anda dapat mendownload projectnya di akun github saya
https://gist.github.com/1726770

Happy coding!!

Anugrah Bagus Susilo
Kembali Ke Atas Go down
https://newbieilmu.forumid.net
 
Membuat chart bar di java
Kembali Ke Atas 
Halaman 1 dari 1

Permissions in this forum:Anda tidak dapat menjawab topik
newbieilmu :: Forum Komputer :: Programming :: Dekstop Programming-
Navigasi: