Minggu, 15 Januari 2012

Pertemuan XII

Komponen Swing
Swing toolkit menyediakan banyak sekali komponen untuk membangun aplikasiGUI desktop. Swing toolkit juga menyediakan class-class untuk menangani interaksi antaraaplikasi dan user menggunakan standard input seperti keyboard dan mouse. Komponen-komponen yang disediakan swing mencakup semua GUI toolkit yang lazim digunakandalam apilasi desktop, seperti : JTabel, JList, JTree, JButton, JLabel dan masih banyak komponenkomponen lainnya yang sudah teruji dan siap pakai.Selain komponen GUI, swing juga menyediakan fasilitas untuk proses undo,komponen untuk mengolah text, internationalization, Komponen GUI yang mendukung penyandang cacat (accessibility support) dan fasilitas drag-and-drop.Look and Feel merupakan fasilitas yang unik dalam swing. Dengan fasilitas Look and Feel ini kita bisa dengan mudah merubah tampilan dari program kita sesuai dengan keinginan dan tujuan kita. Misalnya, agar program terlihat fancy atau agar program terlihat konsisten dalam segala keadaan.Swing juga menyediakan library Java 2D untuk pengolahan data secara visual,seperti mengolah gambar, object 2D, bahkan animasi. SwingLabs.org menyediakan libary Swing Painter yang merupakan pengembangan dari Java 2D, Swing Painter inimemungkinkan aplikasi swing mempunyai tampilan yang indah dan terlihat profesional.Java 6.0 menambahkan banyak sekali fitur-fitur baru ke dalam package swing,termasuk dukungan untuk library OpenGL menggunakan JOGL, Tray Icon dan WebService. Dengan adanya dukungan ini swing menjadi lebih poweful dan mempunyai masa depan yang cerah.
Bekerja dengan JLabel, JTextField dan JButton
Bekerja dengan komponen swing menggunakan Matisse sangat menyenangkan danmudah. GroupLayout yang sangat fleksibel memungkinkan kita untuk membuat aplikasidengan tampilan seperti yang kita harapkan.Label, textfield dan tombol adalah komponen-komponen dasar yang selalu adadalam setiap aplikasi berbasis desktop. Ketiga komponen ini mempunyai fungsi yangsangat sederhana, textfield menyimpan data berbentuk text (string) yang relatif pendek ,label banyak digunakan untuk memberikan keterangan penjelas terhadapkomponen lain dantombol digunakan user untuk menjalankan satu instruksi tertentu.

A.      Membat Program contoh dari JLabel dan JButton menggunakan icon dan Tool Tip

import javax.swing.*;
import java.awt.*;
public class cthIcon {
                public static void main(String[] args) {
                JFrame myFrame =new JFrame("Contoh program AWT");
                Icon ikon =new ImageIcon("0002.GIF");
                JLabel myLabel =new JLabel("Selamat belajar JAVA", ikon,SwingConstants.CENTER);
                JButton myButton =new JButton("SELESAI", ikon);
                myButton.setToolTipText("ini adalah Button");
                myLabel.setToolTipText("ini adalah Label");
                myFrame.setLayout(new BorderLayout());
                myFrame.add(myLabel, "South");
                myFrame.add(myButton, "North");
                myFrame.setSize(500,500);
                myFrame.setVisible(true);
                myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                }
}

Hasil :


B.      Membuat Program menggunakan JFileChooser

import javax.swing.*;
import javax.swing.filechooser.*;
import java.io.File;

public class ContohJFileChooser extends JFrame {
   public static void main (String [] args) {
       ContohJFileChooser apl = new ContohJFileChooser();
   }

   public ContohJFileChooser() {
      setSize(400,150);

      JFileChooser jfc = new JFileChooser();

      FileFilter filterDotJava = new Akhiran(".java", "Berkas*.java");
      jfc.setFileFilter(filterDotJava);

      int hasil = jfc.showOpenDialog(this);
      if (hasil == JFileChooser.APPROVE_OPTION)
      setTitle("Tes JFileChooser.File : " +
                                jfc.getSelectedFile().getName());
      else
                setTitle("Tes JFileChooser. Batal memilih");

      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setVisible(true);
   }

}

class Akhiran extends FileFilter {
  private String ekstensi;
  private String keterangan;

  public Akhiran(String suffix, String deskripsi) {
     this.ekstensi = suffix;
     this.keterangan = deskripsi;
  }

  public boolean accept(File f) {
     if (f.isDirectory())
        return true;

     return f.getName().endsWith(ekstensi);
  }

  public String getDescription() {
     return keterangan;
  }

}

Hasil :

C.      Membuat rogram dengan menggunakan JTextArea, JList dan JSpinner

import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;

class cthList extends JFrame {
   JList daftar;
   JTextArea tArea1, tArea2;
   JPanel Panel1, Panel2, Panel3, Panel4;
   JSpinner Spin;
   String daftarBunga[] = { "Melati", "Mawar", "Krisan",
                                                                "Kenanga", "Cempaka", "Tulip",
                                                                "Kamboja Jepang" };

public cthList() {
   super("Tes JList");
   setSize(350,300);

   Spin = new JSpinner();
   Spin.setValue(new Integer(10));

   Panel1 = new JPanel();
   Panel2 = new JPanel();
   Panel3 = new JPanel();
    Panel4 = new JPanel();
   daftar = new JList (daftarBunga);
   daftar.setSelectedIndex(0);
   tArea1 = new JTextArea("",3,15);
   tArea1.setEditable(false);
   tArea2 = new JTextArea("",3,15);
   tArea2.setEditable(false);
   setLayout(new BorderLayout());
   add(Panel1, "North");
   add(Panel2, "West");
   add(Panel3, "East");
   add(Panel4, "South");
   Panel1.add(daftar);
   Panel2.add(tArea1);
   Panel3.add(tArea2);
   Panel4.add(Spin);
   setDefaultCloseOperation(3);
   setVisible(true);
   daftar.addListSelectionListener(new ListSelectionListener()
   {
                public void valueChanged(ListSelectionEvent e) {
                    tArea1.setText("Yang terpilih : \n"
                    +daftar.getSelectedValue());
                    }
   }
   );
   Spin.addChangeListener(new ChangeListener() {
     public void stateChanged(ChangeEvent e) {
                tArea2.setText("Nilai : \n"  +Spin.getValue());
     }
   }
   );
  }
}
public class ContohJList {
  public static void main (String [] args) {
                cthList apl = new cthList();
  }
}
Hasil :
 
D.      Membuat program dengan menggunakan JProgressBar
import javax.swing.event.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class CthJProgressBar extends JFrame implements ActionListener {
                public final static int SELANG_WAKTU_TUNGGU = 1;
                public final static int MAKS = 1000;
                JProgressBar      pb;
                JButton                                b;
                Timer                                    timer;
                int                                                           posisi = 0;
                public CthJProgressBar() {
                                super("Tes JProgressBar");
                                setSize(300,120);
                                pb = new JProgressBar(0, MAKS);
                                b  = new JButton("Mulai");
                                JPanel p = new JPanel();
                                p.add(b);
                                setLayout(new BorderLayout());
                                add("North",p);
                                add("South",pb);
                                // -- Set Timer
                                timer = new Timer(SELANG_WAKTU_TUNGGU, new ActionListener() {
                                                public void actionPerformed(ActionEvent evt) {
                                                                posisi++;
                                                                pb.setValue(posisi);
                                                                if (posisi == MAKS) {
                                                                                timer.stop();
                                                                                b.setText("Mulai");
                                                                }
                                                }
                                });
                                b.addActionListener(this);
                                setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                                setVisible(true);
                }
                public void actionPerformed(ActionEvent e) {
                                String s = e.getActionCommand();
                                if (s.equals("Mulai")) {
                                                b.setText("Stop");
                                                posisi = 0;
                                                pb.setValue(posisi);
                                                timer.start();
                                }
                                else {
                                                b.setText("Mulai");
                                                timer.stop();
                                }
                }
}
public class ContohJProgressBar {
                public static void main(String [] args) {
                                CthJProgressBar apl = new CthJProgressBar();
                }
}
Hasil :

E.      Membuat program dengan menggunakan JTabbedPane
import javax.swing.*;
class CthJTabbedPane extends JFrame {
                JLabel lTab1, lTab2, lTab3, lTab4;
                JTabbedPane tab;
                public CthJTabbedPane() {
                                super("Tes JTabbedPane");
                                setSize(300,120);
                                tab = new JTabbedPane();
                                JPanel panel1 = new JPanel();
                                tab.addTab("Satu", panel1);
                                tab.setSelectedIndex(0);
                                lTab1 = new JLabel("Tab Satu");
                                panel1.add(lTab1);
                                JPanel panel2 = new JPanel();
                                tab.addTab("Dua", panel2);
                                lTab2 = new JLabel("Tab Dua");
                                panel2.add(lTab2);
                                JPanel panel3 = new JPanel();
                                tab.addTab("Tiga", panel3);
                                lTab3 = new JLabel("Tab Tiga");
                                panel3.add(lTab3);
                                JPanel panel4 = new JPanel();
                                tab.addTab("Empat", panel4);
                                lTab4 = new JLabel("Tab Empat");
                                panel4.add(lTab4);
                                add(tab);
                                setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                                setVisible(true);
                }
}
public class ContohJTabbedPane {
                public static void main(String [] args) {
                                CthJTabbedPane apl = new CthJTabbedPane ();
                }
}
Hasil :

F.      Membuat program dengan menggunakan JTabel
import javax.swing.*;
import java.awt.*;
public class ContohJTable extends JFrame {
                public static void main(String [] args) {
                                ContohJTable apl = new ContohJTable();
                }
                public ContohJTable() {
                                super("Tes JTable");
                                setSize(500,150);
                                Object[][] data = {
                                                {"11234", "Asti Damayanti", "Akunting", new Long(2200000) },
                                                {"11235", "Eritria", "Pemasaran", new Long(1200000) },
                                                {"11236", "Satria", "Personalia", new Long(1200000) },
                                                {"11237", "Tri Setyowati", "EDP", new Long(1500000) },
                                                {"11238", "FahmiBasya", "Akunting", new Long(1250000) },
                                                {"11239", "Suadi Marwan", "Akunting", new Long(1000000) },
                                                {"11240", "Rani Ardini", "Pemasaran", new Long(1100000) },
                                                {"11241", "Listya", "Pemasaran", new Long(1100000) },
                                };
                                String[] judulKolom = {"NIP","Nama","Bagian","Gaji"};
                                JTable tabel = new JTable(data, judulKolom);
                                JScrollPane scrollPane = new JScrollPane(tabel);
                                add(scrollPane);
                                setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                                setVisible(true);
                }
}
Hasil :




G.      Membuat program dengan menggunakan JTree
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;
public class ContohJTree extends JFrame {
                public static void main(String[] args) {
                                ContohJTree apl = new ContohJTree();
                }
                public ContohJTree() {
                                super("Tes JTable");
                                setSize(400,400);
                                // --- Buat akar - Level 0
                                DefaultMutableTreeNode akar = new DefaultMutableTreeNode("Benua");
                                // --- Level 1
                                DefaultMutableTreeNode afrika = new DefaultMutableTreeNode("Afrika");
                                DefaultMutableTreeNode asia = new DefaultMutableTreeNode("Asia");
                                DefaultMutableTreeNode amerika = new DefaultMutableTreeNode("Amerika");
                                DefaultMutableTreeNode eropa = new DefaultMutableTreeNode("Eropa");
                                // --- Level 2
                                DefaultMutableTreeNode mesir = new DefaultMutableTreeNode("Mesir");
                                DefaultMutableTreeNode libya = new DefaultMutableTreeNode("Libya");
                                DefaultMutableTreeNode indonesia = new DefaultMutableTreeNode("Indonesia");
                                DefaultMutableTreeNode jepang = new DefaultMutableTreeNode("Jepang");
                                DefaultMutableTreeNode malaysia = new DefaultMutableTreeNode("Malaysia");
                                DefaultMutableTreeNode kanada = new DefaultMutableTreeNode("Kanada");
                                DefaultMutableTreeNode peru = new DefaultMutableTreeNode("Peru");
                                DefaultMutableTreeNode bolivia = new DefaultMutableTreeNode("Bolivia");
                                DefaultMutableTreeNode brazilia = new DefaultMutableTreeNode("Brazilia");
                                DefaultMutableTreeNode austria = new DefaultMutableTreeNode("Austria");
                                DefaultMutableTreeNode jerman = new DefaultMutableTreeNode("Jerman");
                                // --- Membuat JTree
                                JTree struktur = new JTree(akar);
                                add(struktur);
                                akar.add(afrika);
                                akar.add(asia);
                                akar.add(amerika);
                                akar.add(eropa);
                                afrika.add(mesir);
                                afrika.add(libya);
                                asia.add(indonesia);
                                asia.add(jepang);
                                asia.add(malaysia);
                                amerika.add(kanada);
                                amerika.add(peru);
                                amerika.add(bolivia);
                                amerika.add(brazilia);
                                eropa.add(austria);
                                eropa.add(jerman);
                                setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                                // --- Tampilkan frame
                                setVisible(true);
                }
}
Hasil :