program pembaca file log apache server pada aplikasi WAMP part[2]

🙂😀

Daftar Materi Java

pada bagian 1 kita telah membuat project dan Kelas logicnya, dan sekarang kita akan membuat kelas untuk tampilan (GUI) nya.

  • pada project yang telah kita buat, buatlah sebuah kelas turunan dari JFrame, jika tidak tahu caranya lihat materi tentang GUI menggunakan netbeans, silahkan pelajari dulu. jika sudah bisa silahkan buat desainnya sesuai dengan gambar berikut ini

buatlah sesuai / sama persis. bila anda masih belum tahu caranya merubah text silahkan baca dulu materi sebelumnya tentang GUI, lihat di daftar materi.  ada beberapa catatan dalam desain ini silahkan ikuti:

  • untuk komponen combo ubahlah propertinya yaitu modelnya menjadi seperti ini

  • untuk JFileChooser anda bisa menambahkannya dengan cara yang sama seperti menambahkan komponen lainnya,dan fileChooser tidak akan terlihat pada awalnya. tapi sebaiknya gunakanlah cara ke dua yaitu pada window inspector cari icon Other components – >klik kanan-> add from pallete -> Swing windows -> pilih fileChooser.

untuk dapat mengubah properties, silahkan edit di window properties yang ada di bagian kanan bawah dalam aplikasi netbeans. selanjutnya anda perlu memberi variable berupa object dari kelas logicnya yaitu kelas ReadTextLog dan juga kelas – kelas lainya. lengkapilah kode tampilan ini seperti pada potongan kode berikut

import java.io.File;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.table.DefaultTableModel;

public class Tampil extends javax.swing.JFrame {

  JFileChooser chooser = new JFileChooser();
  File f;
  String spath;
  ReadTextLog control;

  /** Creates new form Tampil */
  public Tampil() {
    lookAndFeel(1);
    initComponents();
    control = new ReadTextLog();
    control.cekDriver();
    if (control.konek()) {
      status.setText("sudah terkoneksi ke database");
    }

  }

  public void lookAndFeel(int no) {
    UIManager.LookAndFeelInfo[] kelasLAF = UIManager.getInstalledLookAndFeels();
    try {
      UIManager.setLookAndFeel(kelasLAF[no].getClassName());
      SwingUtilities.updateComponentTreeUI(chooser);
    } catch (Exception ex) {
      JOptionPane.showMessageDialog(null, "kesalahan lookAndfeel " + ex);
    }

  }
public void notAvailable() {
    combo.setEnabled(false);
    value.setEnabled(false);
    go.setEnabled(false);
  }

  public void available() {
    combo.setEnabled(true);
    value.setEnabled(true);
    go.setEnabled(true);
  }
private void browseActionPerformed(java.awt.event.ActionEvent evt) {
    int choose = chooser.showOpenDialog(this);
    if (choose == JFileChooser.APPROVE_OPTION) {
      f = chooser.getSelectedFile();
      spath = f.getAbsolutePath();
      path.setText(spath);
      control.filePath = spath;
      if (control.cekFile()) {
        status.setText("file tersedia");
      }
    }
  }
  • lalu berilah event pada tombol baca file (baca), lengkapilah kodenya dengan  kode berikut
private void bacaActionPerformed(java.awt.event.ActionEvent evt) {
    if (path.getText().trim().equals("")) {
      JOptionPane.showMessageDialog(this, "File Path Masih Kosong");
    } else {
      if (!path.getText().endsWith(".log") || !control.cekFile()) {
        JOptionPane.showMessageDialog(this, "File Harus berekstensi .log / file tidak ada");
      } else {

        String[] header = {"no", "ip", "waktu", "aksi", "lokasi", "status", "ukuran"};
        DefaultTableModel model = new DefaultTableModel(header, 0);
        ArrayList<String[]> lis = control.bacaFile();
        for (String[] arai : lis) {
          model.addRow(arai);
        }
        tabel.setModel(model);
        //notAvailable();
      }
    }
  }
  • lalu kita lanjutkan dengan memberi event pada tombol input database, berikut ini kodenya
private void inputDatabaseActionPerformed(java.awt.event.ActionEvent evt) {

    if (control.konek == null) {
      JOptionPane.showMessageDialog(this, "database belum terkoneksi");
    } else {

      if (path.getText().trim().equals("")) {
        JOptionPane.showMessageDialog(this, "File Path Masih Kosong");
      } else {
        if (!path.getText().endsWith(".log") || !control.cekFile()) {
          JOptionPane.showMessageDialog(this, "File Harus berekstensi .log / file tidak ada");
        } else {
          status.setText("berhasil input data .....");
          boolean berhasil = control.inputToDataBase();
          if (berhasil) {
            JOptionPane.showMessageDialog(this, "berhasil input semua data ke database");

          }
          available();
        }
      }

    }

  }
  • lalu kita lanjut dengan combo box, dan berikan event dengan cara berikut :

–> klik kanan combo -> Events -> PropertyChange->PropertyChange, dan lengkapi kodenya

private void comboPropertyChange(java.beans.PropertyChangeEvent evt) {
    if (combo.getSelectedIndex() == 0) {
      value.setEditable(false);
      jPanel3.setVisible(false);
    } else if (combo.getSelectedIndex() == 1) {
      value.setEditable(true);
    } else if (combo.getSelectedIndex() == 2) {
      value.setEditable(true);
    } else if (combo.getSelectedIndex() == 3) {
      value.setEditable(true);
    }
  }

–> lalu event yang ke dua dengan cara yang hampir sama, klik kanan combo -> Events-> item -> ItemStateChange , dan lengkapi kode nya dengan kode berikut

private void comboItemStateChanged(java.awt.event.ItemEvent evt) {
    int index = combo.getSelectedIndex();
    if (index == 0 || index == 4 || index == 5) {
      value.setEditable(false);
      jPanel3.setVisible(false);
    } else if (index == 1) {
      value.setEditable(true);
      jPanel3.setVisible(false);
    } else if (index == 2) {
      value.setEditable(false);
      jPanel3.setVisible(true);
    } else if (index == 3) {
      value.setEditable(true);
      jPanel3.setVisible(false);
    }
  }

yak itu dia 2 events untuk komponen combobox, lalu kita berikan event untuk tombol terakhir kita yaitu tombol go, dengan cara yang sama seperti memberi event pada tombol – tombol sebelumnya, lalu lengkapilah kodenya

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

    String viewBy = "";
    String valueSt = "";
    if (combo.getSelectedIndex() == 2) {
      String vTgl = tgl.getText();
      String vBln = bln.getText();
      String vThn = thn.getText();
      String tanggal = vTgl + "/" + vBln + "/" + vThn;
      valueSt = tanggal;
    } else {
      valueSt = value.getText();
    }

    viewBy = combo.getSelectedItem().toString();

    String[] header = {"id", "ip", "waktu", "aksi", "lokasi", "status", "ukuran"};
    DefaultTableModel model = new DefaultTableModel(header, 0);
    try {
      ArrayList<String[]> lis = control.bacaDataBase(viewBy, valueSt);
      for (String[] arai : lis) {
        model.addRow(arai);
      }
    } catch (SQLException ex) {
      System.out.println(ex.getMessage());
    }
    tabel.setModel(model);
    available();
  }

nah sekarang sudah selesai, tinggal di RUN  [Shift + F6], jangan lupa dinyalakan dulu MySQL servernya🙂, nyalain aja WAMP nya. oke gitu aja, mohon maaf kalau ada kesalahan, jika ada pertanyaan atau kesalahan yang say perbuat pada kode silahkan di komen agar saya teliti ada apa dengan kode yg saya buat hehe🙂 terimakasih sudah menyimak, silahkan lihat materi lainya di daftar materi
🙂😀

Daftar Materi Java

silahkan ditanggapi :)

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s