0% found this document useful (0 votes)
21 views

Java

Uploaded by

sangadjiindah8
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)
21 views

Java

Uploaded by

sangadjiindah8
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/ 9

package frame;

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;

public class mainframe extends javax.swing.JFrame {


private DefaultTableModel model;
public mainframe() {
initComponents();
initTableModel();
display();
autonumber();
}

private void initTableModel() {


model = new DefaultTableModel(new String[]{"Kode", "Judul", "Deskripsi",
"Status"}, 0);
tblData.setModel(model);
}

private void display(){


model.getDataVector().removeAllElements();
model.fireTableDataChanged();

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!");
}
}

private void callText(){


int selectedRow = tblData.getSelectedRow();
if (selectedRow != -1) {
DefaultTableModel model = (DefaultTableModel) tblData.getModel();
String kode = model.getValueAt(selectedRow, 0).toString();
String judul = model.getValueAt(selectedRow, 1).toString();
String deskripsi = model.getValueAt(selectedRow, 2).toString();
String status = model.getValueAt(selectedRow, 3).toString();
txtKode.setText(kode);
txtJudul.setText(judul);
txtDeskripsi.setText(deskripsi);
boxStatus.setSelectedItem(status);
}
}

private void clear(){


txtJudul.setText("");
txtDeskripsi.setText("");
}
public mainframe() {
initComponents();
}

/**
* 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() {

txtKode = new javax.swing.JTextField();


jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
txtDeskripsi = new javax.swing.JTextField();
txtJudul = new javax.swing.JTextField();
boxStatus = new javax.swing.JComboBox<>();
jLabel4 = new javax.swing.JLabel();
btnTambah = new javax.swing.JButton();
btnEdit = new javax.swing.JButton();
btnHapus = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
tblData = new javax.swing.JTable();

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");

boxStatus.setModel(new javax.swing.DefaultComboBoxModel<>(new String[]


{ "Selesai", "Belum Selesai" }));

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);

javax.swing.GroupLayout layout = new


javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(29, 29, 29)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.LEADING)
.addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE,
50, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayou
t.Alignment.LEADING, false)
.addComponent(jLabel1,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jLabel3,
javax.swing.GroupLayout.DEFAULT_SIZE, 50, Short.MAX_VALUE)
.addComponent(jLabel4,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayou
t.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(42, 42, 42)
.addGroup(layout.createParallelGroup(javax.swing.Gr
oupLayout.Alignment.LEADING)
.addComponent(txtDeskripsi,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txtKode,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentP
lacement.UNRELATED)
.addComponent(boxStatus,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentP
lacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btnTambah)
.addGap(24, 24, 24)
.addComponent(btnEdit)
.addPreferredGap(javax.swing.LayoutStyle.ComponentP
lacement.UNRELATED)
.addComponent(btnHapus)))))
.addGap(9, 9, 9))
.addGroup(layout.createSequentialGroup()
.addGap(17, 17, 17)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE,
440, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(24, Short.MAX_VALUE))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(131, 131, 131)
.addComponent(txtJudul, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(286, Short.MAX_VALUE)))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(15, 15, 15)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.BASELINE)
.addComponent(txtKode, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel1))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED
)
.addComponent(jLabel3)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(17, 17, 17)
.addComponent(jLabel2))
.addGroup(layout.createSequentialGroup()
.addGap(25, 25, 25)
.addComponent(txtDeskripsi,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.LEADING)
.addGroup(layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement
.UNRELATED)
.addComponent(btnHapus))
.addGroup(layout.createSequentialGroup()
.addGap(16, 16, 16)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayou
t.Alignment.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.BASELINE)
.addComponent(boxStatus,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnTambah)
.addComponent(btnEdit))
.addComponent(jLabel4))))
.addGap(18, 18, 18)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE,
275, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(53, 53, 53)
.addComponent(txtJudul, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(369, Short.MAX_VALUE)))
);

pack();
}// </editor-fold>

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

String kode = txtKode.getText();


String judul = txtJudul.getText();
String deskripsi = txtDeskripsi.getText();
String status = (String) boxStatus.getSelectedItem();

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:
}

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

// TODO add your handling code here:


}

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

int selectedRow = tblData.getSelectedRow();


if (selectedRow != -1) {
// Hapus baris dari model tabel
DefaultTableModel model = (DefaultTableModel) tblData.getModel();
try {
// Ambil nilai kode dari kolom pertama yang dipilih (diasumsikan sebagai String)
String kodeToDelete = (String) model.getValueAt(selectedRow, 0);
// Buat perintah SQL DELETE dengan klausa WHERE sesuai dengan kode yang dipilih
String SQL = "DELETE FROM tabel_data WHERE kode=?";
// Buka koneksi ke database
try (Connection conn = koneksi.koneksi.koneksi_db();
PreparedStatement pst = conn.prepareStatement(SQL)) {
pst.setString(1, kodeToDelete);
// Eksekusi perintah DELETE
int deletedRows = pst.executeUpdate();
// Periksa jika ada baris yang berhasil dihapus
if (deletedRows > 0) {
// Hapus baris dari model tabel di UI
model.removeRow(selectedRow);
JOptionPane.showMessageDialog(null, "Data berhasil dihapus.");
clear();
} else {
JOptionPane.showMessageDialog(null, "Gagal menghapus data.");
}
autonumber();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error: " + e.getMessage());
}
} catch (ClassCastException | NullPointerException e) {
JOptionPane.showMessageDialog(null, "Error: " + e.getMessage());
}
} else {
JOptionPane.showMessageDialog(this, "Pilih baris yang ingin dihapus.");
} // TODO add your handling code here:
}

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

int selectedRow = tblData.getSelectedRow();


if (selectedRow != -1) {
// Hapus baris dari model tabel
DefaultTableModel model = (DefaultTableModel) tblData.getModel();
try {

// 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>

/* Create and display the form */


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

// Variables declaration - do not modify


private javax.swing.JComboBox<String> boxStatus;
private javax.swing.JButton btnEdit;
private javax.swing.JButton btnHapus;
private javax.swing.JButton btnTambah;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable tblData;
private javax.swing.JTextField txtDeskripsi;
private javax.swing.JTextField txtJudul;
private javax.swing.JTextField txtKode;
// End of variables declaration
}

You might also like