Selasa, 17 Januari 2012

Praktek Pertemuan 11


Komponen – Komponen Swing Lanjutan
Swing adalah sebuah widget toolkit untuk Java yang merupakan bagian dari Java Foundation Classes (JFC) dari Sun Microsystem. Swing adaah sebuah API (Application Programming Interface) yang menyediakan Graphical User Interface (GUI) untuk program Java dan applet. Swing dikembangkan untuk menyediakan komponen GUI yang lebih canggih dari komponen sebelumnya yang bernama AWT  dan bertujuan untuk mempermudah pengembangan aplikasi JAVA GUI.
Komponen-komponen Swing dapat diklasifikasikan ke dalam tiga bagian, yaitu  top-level  container,  intermediate  container,  dan  komponen  atomic(tunggal).
1.      Container tingkat atas (top-level) berfungsi untuk menyediakan ruang bagi  komponen komponen  lainnya.  Container  jenis  ini  terdiri  dari JFrame, JWindow, JDialog, dan JApplet.
2.      Container  menengah  adalah  komponen  (non top-level)  yang keberadaannya  untuk  menampung  komponen  lainnya,  misalnya panel, tabbed, dan tool bar. 
3.      Komponen  atomic  berfungsi  untuk  menampilkan  dan/atau  menerima informasi.  Contoh  komponen  atomic  adalah  text  field,  button,  dan label.

      A.     Membuat Program contoh dari JLabel dan JButton menggunakan icon dan ToolTip
·        JLabel , turun dari JComponent, digunakan untuk membuat label teks. Para AbstractButton kelas abstrak kelas JComponent meluas dan menyediakan dasar bagi sebuah keluarga kelas tombol, termasuk JButton.
·        JButton Tombol “push”. Berhubungan dengan class button dalam package AWT. Kelas JButton berguna untuk membuat objek tombol yang dapat dilengkapi dengan judul tombol dan gambar, selain itu JButton merupakan komponen yang dapat menghasilkan suatu event jika tombol diklik oleh user.

cthIcon.java
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);
            }
}

Output :


    B.     Membuat Program Menggunakan JFileChooser

·        JFileChooser yaitu mengijinkan pengguna untuk memilih sebuah file. Korespodensi pada sebuah filechooser class dalam package AWT.

ContohJFileChooser
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 filteDotJava = new Akhiran (".java", "Berkas*.java");
            jfc.setFileFilter(filteDotJava);

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

Output :


     C.     Membuat Program dengan Menggunakan JTextArea, JList dan JSpinner

·        JTextArea memungkinkan mengedit beberapa baris teks. JTextArea dapat digunakan dalam hubungannya dengan kelas JScrollPane untuk mencapai bergulir. Para JScrollPane mendasari dapat dipaksa untuk selalu atau tidak pernah memiliki baik scrollbar vertikal atau horizontal.
·        JList menyediakan satu set digulir item dari yang satu atau lebih dapat dipilih. JList dapat diisi dari Array atau Vector. JList tidak bergulir dukungan secara langsung, sebagai gantinya, daftar harus dikaitkan dengan scrollpane tampilan yang digunakan oleh panel gulir juga dapat memiliki perbatasan. Tindakan JList yang ditangani dengan menggunakan ListSelectionListener.

ContohJList.java
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 { // memanggil class
            public static void main(String[]args){
            cthList apl= new cthList();
            }
}


Output :




      D.    Membuat Program dengan Menggunakan JProgressBar
ContohJProgressBar.java
import javax.swing.*;
import javax.swing.event.*;
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();
                        }
}

Output :




     E.     Membuat Program dengan Menggunakan JTabbedPane

·        JTabbedPane berisi tab yang dapat memiliki tool tip dan mnemonik, dan dapat menampilkan teks dan gambar.

ContohJTabbedPane.java
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);
                        tab.setSelectedIndex(0);
                        lTab2 = new JLabel("Tab Dua");
                        panel2.add(lTab2);

                        JPanel panel3 = new JPanel();
                        tab.addTab ("Tiga", panel3);
                        tab.setSelectedIndex(0);
                        lTab3 = new JLabel("Tab Tiga");
                        panel3.add(lTab3);

                        JPanel panel4 = new JPanel();
                        tab.addTab ("Empat", panel4);
                        tab.setSelectedIndex(0);
                        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 ();
    }

Output :              


                                                                                 

      F.      Membuat Program dengan Menggunakan JTable
ContohJTable.java
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", "Eristria", "Pemasaran", new Long(1200000)},
                        {"11236", "Satria", "Personalia",  new Long(1200000)},
                        {"11237", "Tri Setyowanti", "EDP",  new Long(1500000)},
                        {"11238", "Fahmy Bahsya", "Akunting",  new Long(1250000)},
                        {"11239", "Suawi 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);
            }
}

Output :




      G.    Membuat Program dengan Menggunakan JTree
ContohJTree
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;

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

            //--- Level2
            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 australia = new DefaultMutableTreeNode("Australia");
            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(australia);
            eropa.add(jerman);

            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
            //--- Tampilkan Frame
                        setVisible(true); 
                        }
}

Output :