Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

import static database.DBConnection.

koneksiDB;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.sql.Connection;
import java.sql.Statement;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class StaticBarChart extends JPanel {


static Connection conn;
static Statement stmt;
private final String[] candidateNames = {"Paslon 1", "Paslon 2", "Paslon 3"};

public StaticBarChart() {
this.setPreferredSize(new Dimension(750, 440));
this.setBackground(Color.WHITE);
}

@Override
protected void paintComponent(Graphics g) {

super.paintComponent(g);
Graphics g2d = (Graphics) g;
int a = 0;
int x = 75; //Koordinat X pertama untuk batang pertama
int barWidth = 50; //Lebar batang
int scaleFactor = 5; //Faktor skala untuk tinggi batang

super.paintComponent(g);
Graphics g2c = (Graphics) g;
int totalBarWidth = candidateNames.length * 75;
int panelWidth = getWidth();
int startX = (panelWidth - totalBarWidth) / 2; // Memulai dari tengah panel

try {
conn = koneksiDB();
stmt = conn.createStatement();
ResultSet resultPersen = stmt.executeQuery("select truncate((suara /
(select sum(suara) from tbl_hasil_vote)*100),0) , suara, nama_paslon from
tbl_hasil_vote");

while (resultPersen.next()) {
int barHeight = resultPersen.getInt(1) * 5; // Tinggi batang sesuai
dengan data
g2c.fillRect(startX, 370 - barHeight, 50, barHeight); // Menggambar
batang

// Menambahkan angka jumlah suara di atas batang


g2c.setColor(Color.BLUE);
g2c.drawString(String.valueOf(resultPersen.getInt(2)), startX + 25 -
10, 370 - barHeight - 10);
// Menambahkan nama paslon di bawah batang
g2d.drawString(resultPersen.getString(3), startX + 25 - 30, 390);

startX += 75; // Menambahkan jarak antar batang


}

} catch (SQLException ex) {


Logger.getLogger(StaticBarChart.class.getName()).log(Level.SEVERE, null,
ex);
}
}

public static void main(String[] args) {

JFrame frame = new JFrame("Static Bar Chart");


frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

StaticBarChart staticBarChart = new StaticBarChart();


frame.getContentPane().add(staticBarChart);

frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);

}
}

You might also like