if the adfocus page appears, click skip in the upper right corner

dbm

package dbm;

import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;

public class dbm {
    private static final String URL = "jdbc:mysql://localhost:3306/dbm";
    private static final String USER = "root";
    private static final String PASSWORD = "";

    public static void main(String[] args) {
        JFrame frame = new JFrame("Form Mahasiswa - Bloomberg Style");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(600, 450);
        frame.setLayout(new BorderLayout());
        frame.getContentPane().setBackground(Color.decode("#000000")); // Black

        // Panel input
        JPanel inputPanel = new JPanel(new GridLayout(5, 2, 8, 8));
        inputPanel.setBackground(Color.decode("#000000"));

        // Warna-warna 
        Color labelColor = Color.decode("#00FF41");     // Green Matrix
        Color buttonColor = Color.decode("#222222");
        Font font = new Font("Monospaced", Font.BOLD, 14);

        JLabel nameLabel = new JLabel("Nama:");
        nameLabel.setForeground(labelColor);
        nameLabel.setFont(font);
        JTextField nameField = new JTextField();

        JLabel nimLabel = new JLabel("NIM:");
        nimLabel.setForeground(labelColor);
        nimLabel.setFont(font);
        JTextField nimField = new JTextField();

        JLabel classLabel = new JLabel("Kelas:");
        classLabel.setForeground(labelColor);
        classLabel.setFont(font);
        JTextField classField = new JTextField();

        // Tombol-tombol
        JButton submitButton = new JButton("Submit");
        JButton editButton = new JButton("Edit");
        JButton updateButton = new JButton("Update");
        JButton deleteButton = new JButton("Delete");

        for (JButton btn : new JButton[]{submitButton, editButton, updateButton, deleteButton}) {
            btn.setFont(font);
            btn.setBackground(buttonColor);
            btn.setForeground(labelColor);
        }

        inputPanel.add(nameLabel);
        inputPanel.add(nameField);
        inputPanel.add(nimLabel);
        inputPanel.add(nimField);
        inputPanel.add(classLabel);
        inputPanel.add(classField);
        inputPanel.add(submitButton);
        inputPanel.add(editButton);
        inputPanel.add(updateButton);
        inputPanel.add(deleteButton);

        // Tabel
        String[] columnNames = {"Nama", "NIM", "Kelas"};
        DefaultTableModel tableModel = new DefaultTableModel(columnNames, 0);
        JTable table = new JTable(tableModel);
        table.setBackground(Color.decode("#111111"));
        table.setForeground(labelColor);
        table.setFont(font);
        table.setGridColor(Color.darkGray);
        table.setRowHeight(22);

        JScrollPane scrollPane = new JScrollPane(table);
        scrollPane.getViewport().setBackground(Color.decode("#111111"));

        frame.add(inputPanel, BorderLayout.NORTH);
        frame.add(scrollPane, BorderLayout.CENTER);

        loadData(tableModel);

        // Submit
        submitButton.addActionListener(e -> {
            String name = nameField.getText();
            String nim = nimField.getText();
            String studentClass = classField.getText();
            if (!name.isEmpty() && !nim.isEmpty() && !studentClass.isEmpty()) {
                if (insertData(name, nim, studentClass)) {
                    tableModel.setRowCount(0);
                    loadData(tableModel);
                    nameField.setText("");
                    nimField.setText("");
                    classField.setText("");
                    JOptionPane.showMessageDialog(frame, "Data berhasil disimpan!", "Sukses", JOptionPane.INFORMATION_MESSAGE);
                } else {
                    JOptionPane.showMessageDialog(frame, "Gagal menyimpan data!", "Error", JOptionPane.ERROR_MESSAGE);
                }
            } else {
                JOptionPane.showMessageDialog(frame, "Harap isi semua kolom!", "Peringatan", JOptionPane.WARNING_MESSAGE);
            }
        });

        // Edit
        editButton.addActionListener(e -> {
            int selectedRow = table.getSelectedRow();
            if (selectedRow != -1) {
                nameField.setText(tableModel.getValueAt(selectedRow, 0).toString());
                nimField.setText(tableModel.getValueAt(selectedRow, 1).toString());
                classField.setText(tableModel.getValueAt(selectedRow, 2).toString());
                nimField.setEnabled(false);
            } else {
                JOptionPane.showMessageDialog(frame, "Pilih data yang ingin diedit!", "Peringatan", JOptionPane.WARNING_MESSAGE);
            }
        });

        // Update
        updateButton.addActionListener(e -> {
            String name = nameField.getText();
            String nim = nimField.getText();
            String studentClass = classField.getText();
            if (!name.isEmpty() && !nim.isEmpty() && !studentClass.isEmpty()) {
                if (updateData(name, nim, studentClass)) {
                    tableModel.setRowCount(0);
                    loadData(tableModel);
                    nameField.setText("");
                    nimField.setText("");
                    nimField.setEnabled(true);
                    classField.setText("");
                    JOptionPane.showMessageDialog(frame, "Data berhasil diperbarui!", "Sukses", JOptionPane.INFORMATION_MESSAGE);
                } else {
                    JOptionPane.showMessageDialog(frame, "Gagal memperbarui data!", "Error", JOptionPane.ERROR_MESSAGE);
                }
            } else {
                JOptionPane.showMessageDialog(frame, "Harap isi semua kolom!", "Peringatan", JOptionPane.WARNING_MESSAGE);
            }
        });

        // Delete
        deleteButton.addActionListener(e -> {
            int selectedRow = table.getSelectedRow();
            if (selectedRow != -1) {
                String nim = tableModel.getValueAt(selectedRow, 1).toString();
                int confirm = JOptionPane.showConfirmDialog(frame, "Yakin ingin menghapus data dengan NIM " + nim + "?", "Konfirmasi", JOptionPane.YES_NO_OPTION);
                if (confirm == JOptionPane.YES_OPTION) {
                    if (deleteData(nim)) {
                        tableModel.setRowCount(0);
                        loadData(tableModel);
                        nameField.setText("");
                        nimField.setText("");
                        classField.setText("");
                        nimField.setEnabled(true);
                        JOptionPane.showMessageDialog(frame, "Data berhasil dihapus!", "Sukses", JOptionPane.INFORMATION_MESSAGE);
                    } else {
                        JOptionPane.showMessageDialog(frame, "Gagal menghapus data!", "Error", JOptionPane.ERROR_MESSAGE);
                    }
                }
            } else {
                JOptionPane.showMessageDialog(frame, "Pilih data yang ingin dihapus!", "Peringatan", JOptionPane.WARNING_MESSAGE);
            }
        });

        frame.setVisible(true);
    }

    private static boolean insertData(String name, String nim, String studentClass) {
        String query = "INSERT INTO mahasiswa (nama, nim, kelas) VALUES (?, ?, ?)";
        try (Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
             PreparedStatement stmt = conn.prepareStatement(query)) {
            stmt.setString(1, name);
            stmt.setString(2, nim);
            stmt.setString(3, studentClass);
            return stmt.executeUpdate() > 0;
        } catch (SQLException e) {
            e.printStackTrace();
            return false;
        }
    }

    private static boolean updateData(String name, String nim, String studentClass) {
        String query = "UPDATE mahasiswa SET nama = ?, kelas = ? WHERE nim = ?";
        try (Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
             PreparedStatement stmt = conn.prepareStatement(query)) {
            stmt.setString(1, name);
            stmt.setString(2, studentClass);
            stmt.setString(3, nim);
            return stmt.executeUpdate() > 0;
        } catch (SQLException e) {
            e.printStackTrace();
            return false;
        }
    }

    private static boolean deleteData(String nim) {
        String query = "DELETE FROM mahasiswa WHERE nim = ?";
        try (Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
             PreparedStatement stmt = conn.prepareStatement(query)) {
            stmt.setString(1, nim);
            return stmt.executeUpdate() > 0;
        } catch (SQLException e) {
            e.printStackTrace();
            return false;
        }
    }

    private static void loadData(DefaultTableModel tableModel) {
        String query = "SELECT nama, nim, kelas FROM mahasiswa";
        try (Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
             Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery(query)) {
            while (rs.next()) {
                tableModel.addRow(new Object[]{rs.getString("nama"), rs.getString("nim"), rs.getString("kelas")});
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

Previous Post
No Comment
comment url