Java
Java
import java.awt.HeadlessException;
import java.sql.Connection;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import java.sql.PreparedStatement;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableModel;
import java.sql.ResultSet;
import java.sql.Statement;
try{
Connection conn = (Connection)koneksi.koneksi.koneksi_db();
try (Statement s = conn.createStatement()) {
String sql = "SELECT * FROM tabel_data";
ResultSet rs = s.executeQuery(sql);
while(rs.next()){
Object[] number = new Object[4];
number [0] = rs.getString("kode");
number [1] = rs.getString("judul");
number [2] = rs.getString("deskripsi");
number [3] = rs.getString("status");
model.addRow(number);
}
tblData.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
callText(); // Panggil callText() saat pemilihan baris berubah
}
});
}
}catch(SQLException | HeadlessException e){
JOptionPane.showMessageDialog(null, "Gagal Menampilkan Data!");
}
}
private void autonumber(){
try{
Connection conn = (Connection)koneksi.koneksi.koneksi_db();
try (Statement s = conn.createStatement()) {
String sql = "SELECT * FROM tabel_data ORDER BY kode DESC";
try (ResultSet rs = s.executeQuery(sql)) {
if (rs.next()){
String NoUpdate = rs.getString("kode").substring(2);
String Nomor = "" + (Integer.parseInt(NoUpdate) + 1);
String Nol = "";
switch (Nomor.length()) {
case 1 -> Nol = "00";
case 2 -> Nol = "0";
case 3 -> Nol = "";
default -> {
}
}
txtKode.setText(Nol + Nomor);
}else{
txtKode.setText("001");
}
}
}
}catch(NumberFormatException | SQLException e){
JOptionPane.showMessageDialog(null, "Auto Number Error!");
}
}
/**
* 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">
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
txtKode.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtKodeActionPerformed(evt);
}
});
jLabel1.setText("Kode");
jLabel2.setText("Deskripsi");
jLabel3.setText("Judul");
jLabel4.setText("Status");
btnTambah.setText("Tambah");
btnTambah.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnTambahActionPerformed(evt);
}
});
btnEdit.setText("Edit");
btnEdit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnEditActionPerformed(evt);
}
});
btnHapus.setText("Hapus");
btnHapus.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnHapusActionPerformed(evt);
}
});
tblData.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 [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(tblData);
pack();
}// </editor-fold>
if (txtKode.getText().isEmpty() || txtJudul.getText().isEmpty() ||
txtDeskripsi.getText().isEmpty())
{
JOptionPane.showMessageDialog(this, "Anda belum mengisi semua kolom yang ada!");
}else{
try{
String SQL = "INSERT INTO tabel_data (kode, judul, deskripsi, status) VALUES ('" +
kode + "', '" +
judul + "', '" + deskripsi + "', '" + status + "')";
java.sql.Connection conn = (java.sql.Connection)koneksi.koneksi.koneksi_db();
java.sql.PreparedStatement pst = conn.prepareStatement(SQL);
pst.execute();
display();
JOptionPane.showMessageDialog(null, "Data Berhasi Ditambahkan");
clear();
autonumber();
}catch(SQLException | HeadlessException e){
JOptionPane.showMessageDialog(null, e);
}
} // TODO add your handling code here:
}
// Ambil nilai kode dari kolom pertama yang dipilih (diasumsikan sebagai String)
String kodeToUpdate = (String) model.getValueAt(selectedRow, 0);
String kodeBaru = txtKode.getText();
String judulBaru = txtJudul.getText(); // Ambil judul baru dari JTextField
String deskripsiBaru = txtDeskripsi.getText(); // Ambil deskripsi baru dari
JTextField
String statusBaru = (String) boxStatus.getSelectedItem();
txtKode.setText(kodeBaru);
txtJudul.setText(judulBaru);
txtDeskripsi.setText(deskripsiBaru);
boxStatus.setSelectedItem(statusBaru);
// Buat perintah SQL UPDATE dengan klausa WHERE sesuai dengan kode yang dipilih
String SQL = "UPDATE tabel_data SET kode=?, judul=?, deskripsi=?, status=? WHERE
kode=?";
if (txtKode.getText().isEmpty() || txtJudul.getText().isEmpty() ||
txtDeskripsi.getText().isEmpty()) {
JOptionPane.showMessageDialog(this, "Anda belum mengisi semua kolom yang ada!");
}else{
// Buka koneksi ke database
try (Connection conn = koneksi.koneksi.koneksi_db();
PreparedStatement pst = conn.prepareStatement(SQL)) {
pst.setString(1, kodeBaru);
pst.setString(2, judulBaru);
pst.setString(3, deskripsiBaru);
pst.setString(4, statusBaru);
pst.setString(5, kodeToUpdate);
// Eksekusi perintah UPDATE
int updatedRows = pst.executeUpdate();
if (updatedRows > 0) {
JOptionPane.showMessageDialog(null, "Data berhasil diubah.");
// Update tabel model di UI
model.setValueAt(kodeBaru,selectedRow,0);
model.setValueAt(judulBaru, selectedRow, 1);
model.setValueAt(deskripsiBaru, selectedRow, 2);
model.setValueAt(statusBaru, selectedRow,3);
tblData.clearSelection();
clear();
} else {
JOptionPane.showMessageDialog(null, "Gagal mengubah data.");
}
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error: " + e.getMessage());
}
} // TODO add your handling code here:
}
/**
* @param args the command line arguments
*/
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(mainframe.class.getName()).log(java.util.logging
.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(mainframe.class.getName()).log(java.util.logging
.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(mainframe.class.getName()).log(java.util.logging
.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(mainframe.class.getName()).log(java.util.logging
.Level.SEVERE, null, ex);
}
//</editor-fold>