Monday, September 28, 2009

Membuat Tabel Model Untuk Sebuah Class menggunakan NetBeans

perlu diketahui kalo Swing dibuat menggunakan konsep MVC (Model View Controller), sehingga setiap komponen terdiri dari bagian Model, bagian View, dan bagian Controller.

  • Model, merupakan bagian yang digunakan untuk menampung data
  • View, merupakan bagian untuk menampilkan data
  • Controller, merupakan bagian yang digunakan untuk proses manipulasi data.

jadi walaupun ini membuat rumit, tapi ini membuat mudah programmer dalam membuat sebuah aplikasi.

Dalam kasus ini, yaitu TABEL, yang merupakan Model adalah TableModel. yang merupakan View adalah JTable. dan yang merupakan controller adalah proses insert, update, delete dan event yang digunakan oleh TableModel dan JTable.

Sekarang kita akan mencoba membuat sebuah class yang akan digunakan oleh TableModel, misal class Orang :


import java.util.Date;

public class Orang {

private String nama;

private String jenisKelamin;

private Date tanggalLahir;

private String alamat;

public Orang() {

}

public String getAlamat() {

return alamat;

}

public void setAlamat(String alamat) {

this.alamat = alamat;

}

public String getJenisKelamin() {

return jenisKelamin;

}

public void setJenisKelamin(String jenisKelamin) {

this.jenisKelamin = jenisKelamin;

}


public String getNama() {

return nama;

}

public void setNama(String nama) {

this.nama = nama;

}

public Date getTanggalLahir() {

return tanggalLahir;

}

public void setTanggalLahir(Date tanggalLahir) {

this.tanggalLahir = tanggalLahir;

}

}


sekarang kita buat sebuah class yang bernama TableModelOrang, yang merupakan class untuk model JTable. dan ingat class tersebut harus turunan dari interface TableModel :

import java.util.ArrayList;

import javax.swing.table.AbstractTableModel;

public class TableModelOrang extends AbstractTableModel {

// Kumpulan Data Orang

private ArrayList data;

public TableModelOrang() {

// Mendeklarasikan Data

data = new ArrayList();

}

// Menghapus Orang

public Orang remove(int index) {

Orang forReturn = data.remove(index);

// memberi tahu bahwa ada data yang dihapus

fireTableRowsDeleted(index, index);

return forReturn;

}

// Mendapatkan Orang

public Orang get(int index) {

return data.get(index);

}

// Menambah Orang

public boolean add(Orang e) {

boolean forReturn = data.add(e);

// Memberi tahu bahwa ada data yang masuk

fireTableRowsInserted(data.size() - 1, data.size() - 1);

return forReturn;

}

// Mengubah Orang

public Orang set(int index, Orang element) {

Orang forReturn = data.set(index, element);

// Memberitahu bahwa ada data yang diupdate

fireTableRowsUpdated(index, index);

return forReturn;

}

// Panjang Baris

public int getRowCount() {

return data.size();

}

// Panjang Kolom

public int getColumnCount() {

return 4;

}

// Nilai untuk cell(baris, kolom)

public Object getValueAt(int rowIndex, int columnIndex) {

switch (columnIndex) {

case 0:

return data.get(rowIndex).getNama();

case 1:

return data.get(rowIndex).getJenisKelamin();

case 2:

return data.get(rowIndex).getTanggalLahir();

case 3:

return data.get(rowIndex).getAlamat();

default:

return null;

}

}

// Nama Kolom pada posisi ke-?

public String getColumnName(int column) {

switch (column) {

case 0:

return "Nama";

case 1:

return "Jenis Kelamin";

case 2:

return "Tanggal Lahir";

case 3:

return "Alamat";

default:

return null;

}

}

}


sekarang kita buat sebuah form yang digunakan untuk memanipulasi data. buatlah form seperti dibawah ini menggunakan NetBeans IDE:


keterangan :

  • untuk nama menggunakan JTextField dan nama variablenya textNama
  • untuk jenis kelamin menggunakan JComboBox dan nama variabelnya comboJenisKelamin
  • untuk tangal lahir menggunakan JSpinner dan nama variablenya spinnerTanggalLahir
  • untuk alamat menggunakan JTextArea dan nama variablenya areaAlamat
  • untuk tombol tambah nama variablenya buttonTambah
  • untuk tombol ubah nama variablenya buttonUbah
  • untuk tombol hapus nama variablenya buttonHapus
  • untuk tabel nama variablenya tableOrang

sekarang ubah nilai model comboJenisKelamin menjadi [Laki-Laki, Perempuan] :

setelah itu ubah nilai model untuk spinnerTanggalLahir menjadi Date :


setelah itu buatlah sebuah variable TableModelOrang :


setelah itu inisialisasikan nilai awal model tersebut sebelum pemanggilan metode initComponents(), lalu set model tersebut ke tableOrang :



sekarang coba jalankan, maka akan terlihat seperti ini :



sekarang beri ActionListener ke tombolTambah dengan cara klik kanan tombolnya lalu pilih Events -> Action -> actionPerformed:



private voidOrang orang = buttonTambahActionPerformed(java.awt.event.ActionEvent evt) { Orang orang = new Orang();

orang.setNama(textNama.getText());

orang.setJenisKelamin((String) comboJenisKelamin.getSelectedItem());

orang.setTanggalLahir((Date) spinnerTangalLahir.getValue());

orang.setAlamat(areaAlamat.getText());

// menambahkan ke model

modelOrang.add(orang);

}


Sekarang beri aksi untuk tombol Ubah :

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

if (tableOrang.getSelectedRowCount() == 0) {

// Data Table tak ada yang terseleksi

javax.swing.JOptionPane.showMessageDialog(this, "Silahkan Seleksi Data Tabel Dulu!");

} else {

Orang orang = new Orang();

orang.setNama(textNama.getText());

orang.setJenisKelamin((String) comboJenisKelamin.getSelectedItem());

orang.setTanggalLahir((Date) spinnerTangalLahir.getValue());

orang.setAlamat(areaAlamat.getText());

// Mengubah Data yang terseleksi

int index = tableOrang.convertRowIndexToModel(tableOrang.getSelectedRow());

modelOrang.set(index, orang);

}

}


Sekarang beri aksi untuk tombolHapus :

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

if (tableOrang.getSelectedRowCount() == 0) {

// Data Table tak ada yang terseleksi

javax.swing.JOptionPane.showMessageDialog

(this, "Silahkan Seleksi Data Tabel Dulu!");

} else {

if (javax.swing.JOptionPane.showConfirmDialog(this, "Anda Yakin?") ==

javax.swing.JOptionPane.OK_OPTION) {

// menghapus data yang terseleksi

int index = tableOrang.convertRowIndexToModel

(tableOrang.getSelectedRow());

modelOrang.remove(index);

}

}

}


sekarang coba jalankan formnya :



see you at next trixxx……Rock with Java!!!!!!

Membuat Aplikasi Search dengan JAVA



private javax.swing.JFileChooser browse;
private javax.swing.JButton browse_btn, search_btn, reset_btn;
private javax.swing.JTextField browse_text, search_text;
private javax.swing.JTextArea area_search;
private javax.swing.JScrollPane pane_area;
private PanelFind panel;
private java.util.concurrent.ExecutorService tread;

private java.io.File dir;
private String keyword;
private RunFind findNow;

public FindFiles(){
super(”FindFiles”);

browse = new javax.swing.JFileChooser(”.”);
browse.setAcceptAllFileFilterUsed(false);
browse.setFileSelectionMode(javax.swing.JFileChooser.DIRECTORIES_ONLY);

browse_btn = new javax.swing.JButton(”Browse”);
browse_btn.addActionListener(new Aksi() );
search_btn = new javax.swing.JButton(”Search”);
search_btn.addActionListener(new Aksi() );
reset_btn = new javax.swing.JButton(”Reset”);
reset_btn.addActionListener(new Aksi() );

browse_text = new javax.swing.JTextField();
browse_text.setForeground(java.awt.Color.BLACK);
browse_text.setEnabled(false);
search_text = new javax.swing.JTextField();

area_search = new javax.swing.JTextArea();
area_search.setEditable(false);
pane_area = new javax.swing.JScrollPane(area_search);
tread = java.util.concurrent.Executors.newCachedThreadPool();

panel = new PanelFind(this);
add(panel);

setLocation(200,200);
pack();

setResizable(false);
setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
}

public void browse(){
int valid = browse.showOpenDialog(this);
if(valid == javax.swing.JFileChooser.APPROVE_OPTION){
dir = browse.getSelectedFile();
browse_text.setText(dir.getPath());
}else{
return ;
}

}

public void search(){
keyword = search_text.getText();
area_search.setText(”");
if(keyword.length()<1){ dir ="=" findnow =" new" ex =" java.util.concurrent.Executors.newCachedThreadPool();">

public void reset(){
keyword = “”;
dir = null;
search_text.setText(”");
browse_text.setText(”");
area_search.setText(”");
}

public static void main (String[] args) {
FindFiles baru = new FindFiles();
baru.setVisible(true);
}

private class Aksi implements java.awt.event.ActionListener{

public void actionPerformed(java.awt.event.ActionEvent event){
String command = event.getActionCommand();
if(command.equals(”Browse”)){
browse();
}else if(command.equals(”Reset”)){
reset();
}else if(command.equals(”Search”)){
search();
}
}

}

private class PanelFind extends javax.swing.JPanel{

private javax.swing.JFrame parent;
private java.awt.GridBagLayout layout;
private java.awt.GridBagConstraints constrait;

public PanelFind(javax.swing.JFrame parent){

this.parent = parent;
layout = new java.awt.GridBagLayout();
constrait = new java.awt.GridBagConstraints();
constrait.insets = new java.awt.Insets(5,5,5,5);
constrait.fill = java.awt.GridBagConstraints.BOTH;

setLayout(layout);
addComp(browse_text,0,0,2,1,0,0);
addComp(browse_btn,2,0,1,1,0,0);
addComp(search_text,0,1,1,1,200,0);
addComp(reset_btn,1,1,1,1,0,0);
addComp(search_btn,2,1,1,1,0,0);
addComp(pane_area,0,2,3,1,0,400);

}

public void addComp(javax.swing.JComponent comp, int kolom, int baris, int lebar, int tinggi, int lebarmanual, int tinggimanual){
constrait.gridx = kolom;
constrait.gridy = baris;
constrait.gridwidth = lebar;
constrait.gridheight = tinggi;
constrait.ipadx = lebarmanual;
constrait.ipady = tinggimanual;
layout.setConstraints(comp, constrait);
add(comp);
}

}

private class RunFind implements Runnable{

private String key;
private int count;
private FindFiles parent;

public RunFind(FindFiles parent){
this.key = keyword.startsWith(”.”) ? keyword : “.”+keyword;
this.count = 0;
this.parent = parent;
}

public synchronized void AddFiletoArea(java.io.File folder){
if(folder.isDirectory()){
java.io.File[] files = folder.listFiles();
for(java.io.File i : files){
AddFiletoArea(i);
try{
Thread.sleep(1);
}catch(InterruptedException e){
}
}
}else{
if(folder.getName().toUpperCase().endsWith(key.toUpperCase())){
area_search.append(folder.getPath()+”\n”);
count += 1;
}
}
}

public void run(){
parent.setEnabled(false);
java.io.File[] files = dir.listFiles();
for(java.io.File i : files){
AddFiletoArea(i);
try{
Thread.sleep(1);
}catch(InterruptedException e){
}
}
area_search.append(”—-FINISH—-\n”);
area_search.append(”There Are “+count+” Files Found”);
parent.setEnabled(true);
}
}

}

Sunday, September 27, 2009

Membuat Image SlideShow dengan JAVA


public class SlideShow extends javax.swing.JFrame implements Runnable {

private FileFilter filter;   
private javax.swing.JFileChooser FileChooser;   
private JPanel panel;   
private javax.swing.JMenuBar menubar;   
private javax.swing.JMenu menu;   
private javax.swing.JMenuItem item;   
private Thread tread;   
private String[] list;   
public SlideShow() {   
super("SlidShow");   
setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);   
setLocation(100, 100);   
setSize(800, 640);   
FileChooser = new javax.swing.JFileChooser("C:\\");   
filter = new FileFilter();   
FileChooser.setFileFilter(filter);   
FileChooser.setFileSelectionMode(javax.swing.
JFileChooser.DIRECTORIES_ONLY);
panel = new JPanel();   
 add(panel);   
item = new javax.swing.JMenuItem("Open");   
item.addActionListener(new aksi());   
menu = new javax.swing.JMenu("File");   
menu.add(item);   
menubar = new javax.swing.JMenuBar();   
menubar.add(menu);   
setJMenuBar(menubar);   
 }   
public void run() {   
     for (int i = 0; i <>
    try {   
  java.io.File file = new java.io.File
(FileChooser.getSelectedFile(), list[i]);
  String fileString = file.getPath();   
  panel.setIcon(fileString);   
  Thread.sleep(2000);   
  } catch (InterruptedException e) {   
    System.out.println(e);   
    } catch (Throwable t) {   
    System.out.println(t.getMessage());   
   }   
    }   
   } 
public void start() {   
 tread = new Thread(this);   
 tread.start();   
  }   
 public static void main(String[] args) {   
    SlideShow baru = new SlideShow();   
    baru.setVisible(true);   
 }


private
class aksi implements java.awt.event.ActionListener {

public void actionPerformed(java.awt.event.ActionEvent event) {

int x = FileChooser.showOpenDialog(SlideShow.this);
   if (x == javax.swing.JFileChooser.APPROVE_OPTION) {   
   java.io.File folder = FileChooser.getSelectedFile();   
  list = folder.list(new FileFIlterName());   
   if (list.length > 0) {   
    if (tread != null) {   
         tread.stop();   
             }   
           start();   
       } else {   
 javax.swing.JOptionPane.showMessageDialog(SlideShow.this,   
               "NO IMAGE FILE IN DIRECTORY");   
     }   
     } else {   
     }   
     }   
    }   
private class FileFIlterName implements java.io.FilenameFilter {   
public boolean accept(java.io.File dir, String name) {   
 if (name.toUpperCase().endsWith(".JPG")) {   
       return true;   
  } else {   
        return false;   
     }   
    }   
   }   

  private class JPanel extends javax.swing.JPanel {   

   private java.awt.Image gambar;   
   private javax.swing.JLabel icon;   
   public JPanel() {   
   super(new java.awt.BorderLayout());   
   setPreferredSize(new java.awt.Dimension(800, 640));   
   icon = new javax.swing.JLabel();   
  icon.setHorizontalAlignment(javax.swing.JLabel.CENTER);   
  icon.setVerticalAlignment(javax.swing.JLabel.CENTER);   
   add(icon, java.awt.BorderLayout.CENTER);   
   }   

public void setIcon(String file) {
   try {   
    gambar = javax.imageio.ImageIO.read(new java.io.File(file));   
  if (gambar.getWidth(null) > getWidth()) {   
      gambar = gambar.getScaledInstance(getWidth(), -1,
java.awt.Image.SCALE_DEFAULT);
      }   
   
if (gambar.getHeight(null) > getHeight()) {
       gambar = gambar.getScaledInstance(-1, getHeight(),
java.awt.Image.SCALE_DEFAULT);
         }   
     } catch (Throwable trouble) {   
         System.out.println(trouble.getMessage());   
           return;   
         }   
        icon.setIcon(new javax.swing.ImageIcon(gambar));   
      }   
 }   

 private class FileFilter extends javax.swing.
filechooser.FileFilter {
      public boolean accept(java.io.File f) {   
       if (f.isDirectory()) {   
           return true;   
     } else {   
       return false;   
     }   
    }   

  public String getDescription() {   
      return "FOLDER";   
       }  
}

NB: Savenya di file Slide Show.java. klo pake Netbeans ato Eclipse buatnya jangan di dalam paket

Animasi text pada JAVA


Berikut coba kami tampilkan CODING animasi text pada JAVA


public class AnimasiTeks extends javax.swing.JFrame {   
     
         private Panel panel;   
       
         public AnimasiTeks() {

         setDefaultCloseOperation(javax.swing.JFrame
.EXIT_ON_CLOSE);
             setBounds(100, 100, 640, 480);   
             panel = new Panel();   
             add(panel);   
             setVisible(true);   
             new Thread(panel).start();   
         }   
       
         public static void main(String[] args) {   
             new AnimasiTeks();   
         }   
       
         private class Panel extends javax.swing.JPanel
implements Runnable {
       
             private javax.swing.JLabel label;   
       
             public Panel() {   
                 setLayout(null);   
                 label = new javax.swing.JLabel("TEKS");   
                 label.setBounds(10, 10, 50, 10);   
                 add(label);   
             }   
       
             public void run() {   
                 int x = 10;   
                 int y = 10;   
                 while (true) {   
                     label.setBounds(x, y, 50, 10);   
                     x += 1;   
                     y += 1;   
                     try {   
                         Thread.sleep(100);   
                     } catch (InterruptedException e) {   
                         e.printStackTrace();   
                     }   
                 }   
             }   
         }   
     }


Friday, September 25, 2009

Instalasi GEL RC 13 a dan Setting JAVA


By: Mr.L --- Koordinator JC SMKN1 SBY

GEL adalah salah satu software IDE JAVA ber MODE TEKS yang berguna bagi pengguna JAVA pertama kali. Ada beberapa software lain yang hampir sama pengunaannya dan GEL salah satu alternatif pilihannya. Sebelum kita meng Install GEL, sebaiknya kita menginstall JDK dahulu. Disini kita memakai JDK 1.5.10. Setelah kita install JDK nya, kemudian kita setting class Path yang berfungsi sebagai JVM (JAVA VIRTUAL MACHINE). LAngkah-langkah setting Class Path sebagai berikut :


1 Klik Kanan My Computer--> Klik Properties











2.Klik Advancedà Klik Environment Variables










3. Pada User Variable ---> Klik New-->Ketik :
Variable name : Class Path
Variable Value :C:\j2sdk1.4.1_01\jre\lib\rt.jar (letak file system JDK)

Lalu klik OK

















4. Pada System Variable--> Klik Path-->Klik Edit-->Ketik dan tambahkan di path :
..........;C:\j2sdk1.4.1_01\bin;C:\j2sdk1.4.1_01\lib;

Lalu klik OK




5. Klik Start--RUN--> Ketik cmd--> KLik OK








6. Pada Command Prompt, ketik javac....






7.
Kalo gambar seperti di bawah ini berarti java sudah jalan




Langkah - langkah install GEL :















































































































Memulai JAVA di GEL:



































Design by - JC Team | SMK Negeri 1 Surabaya