Program Pencatatan Kendaraan Masuk menggunakan Java Swing dengan Konsep Dasar ArrayList
Pertama buat program dengan nama JavaTrayekKendaraan, lalu buat class dengan nama kendaraan.java dan masukan script berikut :
public class Kendaraan {
private String NoPolisi;
private String NoTrayek;
public Kendaraan(String NoPolisi, String NoTrayek){
this.NoPolisi = NoPolisi;
this.NoTrayek = NoTrayek;
}
public String getNoPolisi(){
return NoPolisi;
}
public String getNoTrayek(){
return NoTrayek;
}
}
public class Kendaraan {
private String NoPolisi;
private String NoTrayek;
public Kendaraan(String NoPolisi, String NoTrayek){
this.NoPolisi = NoPolisi;
this.NoTrayek = NoTrayek;
}
public String getNoPolisi(){
return NoPolisi;
}
public String getNoTrayek(){
return NoTrayek;
}
}
Selanjutnya buat class baru beri nama InputDataKendaraan.java dan ketik script berikut :
import java.util.ArrayList;
public class InputDataKendaraan {
ArrayList<Kendaraan> listkendaraan;
public InputDataKendaraan(){
listkendaraan = new ArrayList();
}
public void insertData(String NoPolisi, String NoTrayek){
Kendaraan knd = new Kendaraan(NoPolisi, NoTrayek);
listkendaraan.add(knd);
}
public ArrayList<Kendaraan> getAll(){
return listkendaraan;
}
public void deleteData(int index){
listkendaraan.remove(index);
}
}
Terakhir buat main class pilih JFrame Form lalu beri nama MainForm.java :
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
public class MainForm extends javax.swing.JFrame {
DefaultTableModel modelkendaraan;
InputDataKendaraan datakendaraan;
/**
* Creates new form MainForm
*/
public MainForm() {
initComponents();
datakendaraan = new InputDataKendaraan();
viewDataTabel();
jTextField1.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
char keyChar = e.getKeyChar();
if (Character.isLowerCase(keyChar)) {
e.setKeyChar(Character.toUpperCase(keyChar));
}
}
});
}
public final void viewDataTabel() {
String[] namakolom = {"No Polisi", "No Trayek"};
Object[][] objekkendaraan = new Object[datakendaraan.getAll().size()][3];
int i = 0;
for (Kendaraan knd : datakendaraan.getAll()) {
String arraykendaraan[] = {
knd.getNoPolisi(),
knd.getNoTrayek()
};
objekkendaraan[i] = arraykendaraan;
i++;
}
modelkendaraan = new DefaultTableModel(objekkendaraan, namakolom);
jTable2.setModel(modelkendaraan);
}
public void ClearTextField() {
jTextField1.setText("");
jTextField2.setText("");
jTextField1.requestFocus();
}
/**
* 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() {
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jLabel1 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jTextField2 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jScrollPane2 = new javax.swing.JScrollPane();
jTable2 = new javax.swing.JTable();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
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 [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(jTable1);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jLabel1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel1.setText("Form Input Data Kendaraan Masuk");
getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 10, 310, -1));
jLabel3.setText("No. Polisi");
getContentPane().add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 60, -1, -1));
jLabel4.setText("No. Trayek");
getContentPane().add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 100, -1, -1));
getContentPane().add(jTextField1, new org.netbeans.lib.awtextra.AbsoluteConstraints(80, 50, 110, 30));
getContentPane().add(jTextField2, new org.netbeans.lib.awtextra.AbsoluteConstraints(80, 90, 110, 30));
jButton1.setText("Simpan");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
getContentPane().add(jButton1, new org.netbeans.lib.awtextra.AbsoluteConstraints(80, 130, -1, -1));
jTable2.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"
}
));
jScrollPane2.setViewportView(jTable2);
getContentPane().add(jScrollPane2, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 170, 300, 220));
jButton2.setText("Hapus");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
getContentPane().add(jButton2, new org.netbeans.lib.awtextra.AbsoluteConstraints(150, 130, -1, -1));
jButton3.setText("Save .txt");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});
getContentPane().add(jButton3, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 400, -1, -1));
pack();
}// </editor-fold>
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
datakendaraan.insertData(jTextField1.getText(), jTextField2.getText());
viewDataTabel();
ClearTextField();
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
datakendaraan.deleteData(jTable2.getSelectedRow());
viewDataTabel();
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
PrintWriter writer = null;
try {
writer = new PrintWriter("006141121031.txt", "UTF-8");
} catch (FileNotFoundException | UnsupportedEncodingException ex) {
Logger.getLogger(MainForm.class.getName()).log(Level.SEVERE, null, ex);
}
writer.println("TERMINAL BARANANG SIANG");
writer.println("=========================================================");
writer.println(writer.printf("%-15.30s %-15.30s %-15.30s %-15.30s", "No Urut", "No Polisi", "No Trayek", "Jam Masuk", 4));
writer.println("");
Object[][] objekkendaraan = new Object[datakendaraan.getAll().size()][3];
int i = 0;
for (Kendaraan knd : datakendaraan.getAll()) {
String arraykendaraan[] = {
knd.getNoPolisi(),
knd.getNoTrayek()
};
objekkendaraan[i] = arraykendaraan;
i++;
DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
Date d1 = new Date();
writer.println(writer.printf("%-15.30s %-15.30s %-15.30s %-15.30s", +i, knd.getNoPolisi(), knd.getNoTrayek(), dateFormat.format(d1)));
}
writer.println("");
writer.println("=========================================================");
writer.println("Jumlah Kendaraan Masuk : " + i);
writer.println("Dicetak oleh : 006141121031 | Fandy Septiana ");
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy & HH:mm:ss");
Date d2 = new Date();
writer.println("Tanggal & Jam Cetak : " + dateFormat.format(d2));
writer.close();
JOptionPane.showMessageDialog(null, "DATA BERHASIL DISIMPAN");
Runtime rt = Runtime.getRuntime();
String file = "D:\\JAVA Project\\JavaTrayekKendaraan\\006141121031.txt";
try {
Process p = rt.exec("notepad " + file);
} catch (IOException ex) {
Logger.getLogger(MainForm.class.getName()).log(Level.SEVERE, null, ex);
}
}
/**
* @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(MainForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(MainForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(MainForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(MainForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/*
* Create and display the form
*/
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new MainForm().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTable jTable1;
private javax.swing.JTable jTable2;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
// End of variables declaration
}
Selesai, selanjutnya jalankan programnya. Untuk mendownload program silahkan klik lnik berikut :
DOWNLOAD
DOWNLOAD