[go: up one dir, main page]

0% found this document useful (0 votes)
8 views12 pages

Kodingan Form Dashboard

The document is a Java class for a dashboard application that connects to a MySQL database to display sales and inventory management data. It includes methods for updating data from the database, animating number changes on the UI, and initializing the graphical components of the dashboard. The UI features various panels and buttons for user interaction, including displaying new orders, bounce rates, user registrations, and unique visitors.

Uploaded by

akuncobaanr
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views12 pages

Kodingan Form Dashboard

The document is a Java class for a dashboard application that connects to a MySQL database to display sales and inventory management data. It includes methods for updating data from the database, animating number changes on the UI, and initializing the graphical components of the dashboard. The UI features various panels and buttons for user interaction, including displaying new orders, bounce rates, user registrations, and unique visitors.

Uploaded by

akuncobaanr
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 12

/*

* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to
change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this
template
*/
package toko;

import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JTextArea;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JTextPane;
import javax.swing.text.Style;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;
import java.util.Collections;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.sql.DriverManager;
import java.util.Random;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;
import javax.swing.table.DefaultTableModel;

/**
*
* @author LENOVO
*/
public class dashboard extends javax.swing.JFrame {
public dashboard() {
initComponents();
// Pilih salah satu:
// setupDashboardBoxes(); // Jika method diimplementasikan
// Atau langsung set nilai default:
jLabel4.setText("150");
jLabel6.setText("53%");
jLabel8.setText("44");
jLabel10.setText("65");
}

private void updateFromDatabase() {


try {
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/db",
"user", "pass");
Statement stmt = conn.createStatement();

// New Orders
ResultSet rs = stmt.executeQuery("SELECT COUNT(*) FROM orders WHERE date =
CURDATE()");
if (rs.next()) jLabel4.setText(rs.getString(1));

// Query lainnya...

conn.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}

private void animateNumberChange(JLabel label, int targetValue) {


Timer timer = new Timer(50, null);
timer.addActionListener(new ActionListener() {
int currentValue = Integer.parseInt(label.getText());
public void actionPerformed(ActionEvent e) {
if (currentValue < targetValue) {
currentValue++;
label.setText(String.valueOf(currentValue));
} else if (currentValue > targetValue) {
currentValue--;
label.setText(String.valueOf(currentValue));
} else {
timer.stop();
}
}
});
timer.start();
}

/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")

// <editor-fold defaultstate="collapsed" desc="Generated Code">

private void initComponents() {

jPanel1 = new javax.swing.JPanel();


jPanel2 = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
jPanel3 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jButton4 = new javax.swing.JButton();
jLabel12 = new javax.swing.JLabel();
jLabel1 = new javax.swing.JLabel();
jPanel4 = new javax.swing.JPanel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jPanel5 = new javax.swing.JPanel();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
jPanel6 = new javax.swing.JPanel();
jLabel8 = new javax.swing.JLabel();
jLabel9 = new javax.swing.JLabel();
jPanel7 = new javax.swing.JPanel();
jLabel10 = new javax.swing.JLabel();
jLabel11 = new javax.swing.JLabel();
btnRefresh = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jLabel3 = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jPanel1.setBackground(new java.awt.Color(204, 204, 204));

jPanel2.setBackground(new java.awt.Color(153, 153, 255));

jLabel2.setFont(new java.awt.Font("Segoe UI", 1, 24)); // NOI18N


jLabel2.setText("SISTEM MANAJEMEN PENJUALAN DAN INVENTORI ELEKTRONIK");

javax.swing.GroupLayout jPanel2Layout = new


javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(

jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(203, 203, 203)
.addComponent(jLabel2)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
jPanel2Layout.setVerticalGroup(

jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(14, 14, 14)
.addComponent(jLabel2)
.addContainerGap(14, Short.MAX_VALUE))
);

jPanel3.setBackground(new java.awt.Color(51, 51, 51));

jButton1.setBackground(new java.awt.Color(51, 51, 51));


jButton1.setForeground(new java.awt.Color(255, 255, 255));
jButton1.setText("Data Penjualan");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

jButton2.setBackground(new java.awt.Color(51, 51, 51));


jButton2.setForeground(new java.awt.Color(255, 255, 255));
jButton2.setText("Stok Barang Rumah");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});

jButton3.setBackground(new java.awt.Color(51, 51, 51));


jButton3.setForeground(new java.awt.Color(255, 255, 255));
jButton3.setText("Stok Gadget");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});

jButton4.setText("Keluar");
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});

jLabel12.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel12.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/foto/login Dashboard.png"))); //
NOI18N

jLabel1.setForeground(new java.awt.Color(255, 255, 255));


jLabel1.setText("SAID ANHAR");

javax.swing.GroupLayout jPanel3Layout = new


javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(

jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton3, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout
.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGap(57, 57, 57)
.addComponent(jButton4))
.addGroup(jPanel3Layout.createSequentialGroup()
.addGap(14, 14, 14)
.addComponent(jLabel12)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement
.RELATED)
.addComponent(jLabel1)))
.addContainerGap(66, Short.MAX_VALUE))
);
jPanel3Layout.setVerticalGroup(

jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout
.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGap(10, 10, 10)
.addComponent(jLabel12)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement
.RELATED))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addGap(18, 18, 18)))
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 33,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELAT
ED)
.addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 31,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELAT
ED)
.addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 32,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED
, 191, Short.MAX_VALUE)
.addComponent(jButton4)
.addGap(30, 30, 30))
);

jPanel4.setBackground(new java.awt.Color(0, 204, 204));

jLabel4.setFont(new java.awt.Font("Segoe UI", 1, 24)); // NOI18N


jLabel4.setText("150");

jLabel5.setText("New Orders");

javax.swing.GroupLayout jPanel4Layout = new


javax.swing.GroupLayout(jPanel4);
jPanel4.setLayout(jPanel4Layout);
jPanel4Layout.setHorizontalGroup(

jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout
.Alignment.LEADING)
.addComponent(jLabel5)
.addComponent(jLabel4))
.addContainerGap(116, Short.MAX_VALUE))
);
jPanel4Layout.setVerticalGroup(

jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addGap(12, 12, 12)
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED
)
.addComponent(jLabel5)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);

jPanel5.setBackground(new java.awt.Color(0, 204, 102));

jLabel6.setFont(new java.awt.Font("Segoe UI", 1, 24)); // NOI18N


jLabel6.setText("53%");

jLabel7.setText("Bounce Rate");

javax.swing.GroupLayout jPanel5Layout = new


javax.swing.GroupLayout(jPanel5);
jPanel5.setLayout(jPanel5Layout);
jPanel5Layout.setHorizontalGroup(

jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel5Layout.createSequentialGroup()
.addGap(20, 20, 20)
.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout
.Alignment.LEADING)
.addComponent(jLabel7)
.addComponent(jLabel6))
.addContainerGap(117, Short.MAX_VALUE))
);
jPanel5Layout.setVerticalGroup(

jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel5Layout.createSequentialGroup()
.addGap(14, 14, 14)
.addComponent(jLabel6)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED
)
.addComponent(jLabel7)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);

jPanel6.setBackground(new java.awt.Color(255, 204, 51));

jLabel8.setFont(new java.awt.Font("Segoe UI", 1, 24)); // NOI18N


jLabel8.setText("44");

jLabel9.setText("User Registrations");

javax.swing.GroupLayout jPanel6Layout = new


javax.swing.GroupLayout(jPanel6);
jPanel6.setLayout(jPanel6Layout);
jPanel6Layout.setHorizontalGroup(

jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel6Layout.createSequentialGroup()
.addGap(14, 14, 14)
.addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout
.Alignment.LEADING)
.addComponent(jLabel9)
.addComponent(jLabel8))
.addContainerGap(112, Short.MAX_VALUE))
);
jPanel6Layout.setVerticalGroup(

jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel6Layout.createSequentialGroup()
.addGap(14, 14, 14)
.addComponent(jLabel8)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED
)
.addComponent(jLabel9)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);

jPanel7.setBackground(new java.awt.Color(255, 51, 51));

jLabel10.setFont(new java.awt.Font("Segoe UI", 1, 24)); // NOI18N


jLabel10.setText("65");

jLabel11.setText("Unique Visitors");

javax.swing.GroupLayout jPanel7Layout = new


javax.swing.GroupLayout(jPanel7);
jPanel7.setLayout(jPanel7Layout);
jPanel7Layout.setHorizontalGroup(

jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel7Layout.createSequentialGroup()
.addGap(15, 15, 15)
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout
.Alignment.LEADING)
.addComponent(jLabel11)
.addComponent(jLabel10))
.addContainerGap(126, Short.MAX_VALUE))
);
jPanel7Layout.setVerticalGroup(

jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel7Layout.createSequentialGroup()
.addGap(15, 15, 15)
.addComponent(jLabel10)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED
)
.addComponent(jLabel11)
.addContainerGap(61, Short.MAX_VALUE))
);

btnRefresh.setText("Refresh");
btnRefresh.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnRefreshActionPerformed(evt);
}
});

jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"No. Pesanan", "Nama Barang", "Merek", "Harga"
}
));
jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jTable1MouseClicked(evt);
}
});
jScrollPane1.setViewportView(jTable1);

jLabel3.setFont(new java.awt.Font("Segoe UI", 1, 24)); // NOI18N


jLabel3.setText("DASHBOARD");

javax.swing.GroupLayout jPanel1Layout = new


javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELAT
ED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout
.Alignment.LEADING)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLa
yout.Alignment.LEADING, false)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jPanel4,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlace
ment.RELATED)
.addComponent(jPanel5,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlace
ment.RELATED)
.addComponent(jPanel6,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlace
ment.RELATED)
.addComponent(jPanel7,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jScrollPane1))
.addComponent(btnRefresh,
javax.swing.GroupLayout.PREFERRED_SIZE, 87, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3))
.addContainerGap(116, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout
.Alignment.LEADING, false)
.addGroup(jPanel1Layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement
.RELATED)
.addComponent(jPanel3,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(14, 14, 14)
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement
.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.Gro
upLayout.Alignment.LEADING, false)
.addComponent(jPanel4,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jPanel5,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jPanel6,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jPanel7,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement
.RELATED)
.addComponent(btnRefresh,
javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement
.RELATED)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)))
.addContainerGap(233, Short.MAX_VALUE))
);

javax.swing.GroupLayout layout = new


javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addContainerGap(58, Short.MAX_VALUE)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
);

pack();
}// </editor-fold>
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:


Penjualan penjualan = new Penjualan();
penjualan.setVisible(true);
this.dispose();

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:


this.dispose();

// Tampilkan form login


new login().setVisible(true);
}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:


stok_barang_rumah rumah = new stok_barang_rumah();
rumah.setVisible(true);
this.dispose();
}

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:


stok_gadget gadget = new stok_gadget();
gadget.setVisible(true);
this.dispose(); // Tutup form login
}

private void btnRefreshActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

// Generate random data


Random random = new Random();

// 1. Update New Orders with random products from stok


String[] rumahProducts = {
"TELEVISI", "SAMSUNG", "5000000",
"KULKAS", "POLYTRON", "6000000",
"BLENDER", "SHARP", "700000",
"RICE COOKER", "MIYAKO", "600000"
};

String[] gadgetProducts = {
"LAPTOP", "ASUS", "2000000",
"HANPHONE", "SAMSUNG", "1000000",
"TABLET", "SAMSUNG", "3000000",
"LAPTOP", "LENOVO", "3000000"
};

// Randomly select between rumah and gadget products


String[][] selectedProducts = random.nextBoolean() ?
new String[][]{
{rumahProducts[0], rumahProducts[1], rumahProducts[2]},
{rumahProducts[3], rumahProducts[4], rumahProducts[5]},
{rumahProducts[6], rumahProducts[7], rumahProducts[8]},
{rumahProducts[9], rumahProducts[10], rumahProducts[11]}
} :
new String[][]{
{gadgetProducts[0], gadgetProducts[1], gadgetProducts[2]},
{gadgetProducts[3], gadgetProducts[4], gadgetProducts[5]},
{gadgetProducts[6], gadgetProducts[7], gadgetProducts[8]},
{gadgetProducts[9], gadgetProducts[10], gadgetProducts[11]}
};

int orderCount = 100 + random.nextInt(101); // 100-200 orders


jLabel4.setText(String.valueOf(orderCount));

// 2. Update Bounce Rate (30-70%)


int bounceRate = 30 + random.nextInt(41);
jLabel6.setText(bounceRate + "%");

// 3. Update User Registrations with random names


String[] names = {"Ahmad", "Budi", "Citra", "Dewi", "Eka", "Fajar", "Gita",
"Hadi"};
int userCount = 20 + random.nextInt(81); // 20-100 users
String randomName = names[random.nextInt(names.length)];
jLabel8.setText(String.valueOf(userCount) + " (" + randomName + ")");

// 4. Update Unique Visitors with random names


String[] visitorNames = {"John", "Jane", "Robert", "Lisa", "Michael", "Sarah"};
int visitorCount = 50 + random.nextInt(101); // 50-150 visitors
String randomVisitor = visitorNames[random.nextInt(visitorNames.length)];
jLabel10.setText(String.valueOf(visitorCount) + " (" + randomVisitor + ")");

// 5. Update table with product details


DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
model.setRowCount(0); // Clear existing data

// Add random products to table


for (int i = 0; i < 4; i++) {
String[] product = selectedProducts[i];
model.addRow(new Object[]{
"Pesanan " + (i+1),
product[0], // Nama Barang
product[1], // Merek
"Rp." + product[2] // Harga sesuai stok
});
}

private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:


}

public static void main(String args[]) {


/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code
(optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the
default look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(dashboard.class.getName()).log(java.util.logging
.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(dashboard.class.getName()).log(java.util.logging
.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(dashboard.class.getName()).log(java.util.logging
.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(dashboard.class.getName()).log(java.util.logging
.Level.SEVERE, null, ex);
}
//</editor-fold>

/* Create and display the form */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new dashboard().setVisible(true);
}
});
}

You might also like