Kamis, 02 Februari 2012

Komponen Java GUI Lanjutan

Membuat JFileChooser, JList, JProgressBar, JTabel, Jtree,JTabbedPane,
a. 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", "semester2*.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;
    }
}
Hasilnya :
b. JList
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 daftarTeman[] = { "Aisyah", "Eka", "Dayu", "Mitha", "Risky", "Elvrida", "Rotua" };

    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(daftarTeman);
        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();
    }
}

Hasilnya :
c. 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();
    }
}
Hasilnya :
d. 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 ();
    }
}
Hasilnya :
e. JTable
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", "Juwita Sari", "Akunting", new Long(2200000) },
            {"11235", "Juri Saputra", "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);
    }
}
Hasilnya :
 f. JTtree
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 JTree");
        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);
    }
}

Hasilnya :
  

KOMPONEN JMENU

A. Membuat Main Menu
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

class CobaMenu extends JFrame {
    JMenuBar menubar;
    JMenu file, doc, edit, help;
    JMenuItem open, save, exit, delete, copy, paste, about;

    public CobaMenu() {
      setTitle ("Menu");
      setSize(200,200);
      file = new JMenu ("File");
      file.setMnemonic('F');
      doc = new JMenu ("Document");
      doc.setMnemonic('D');
      edit = new JMenu ("Edit");
      edit.setMnemonic('E');
      help = new JMenu ("Help");
      help.setMnemonic('H');
      open = new JMenuItem ("Open");
      open.setMnemonic('O');
      save = new JMenuItem ("Save");
      save.setMnemonic('S');
      exit = new JMenuItem ("Exit");
      exit.setMnemonic('X');
      delete = new JMenuItem ("Delete");
      delete.setMnemonic('L');
      copy = new JMenuItem ("Copy");
      copy.setMnemonic('C');
      paste = new JMenuItem ("Paste");
      paste.setMnemonic('P');
      about = new JMenuItem ("About");
      about.setMnemonic('A');

      menubar = new JMenuBar ();
      setJMenuBar (menubar);
      menubar.add(file);
      file.add(open);
      file.add(save);
      file.addSeparator();
      file.add(exit);
      menubar.add(doc);
      doc.add(edit);
      edit.add(copy);
      edit.add(paste);
      edit.add(delete);
      menubar.add(help);
      help.add(about);

      exit.addActionListener(new ActionListener(){
          public void actionPerformed(ActionEvent e) {
              System.exit(0);
          }
      });

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

public class MainMenu {
    public static void main (String[] neno) {
     CobaMenu m = new CobaMenu();
     }

}

Hasil :

B. Main Menu 2
  Membuat FDialod Dan FFrame

1. FDialog

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


class FDialog extends JDialog implements ActionListener{
    JButton btnTutup = new JButton ("TUTUP");

    public FDialog() {
    setTitle("DIALOG");
    setSize(200,100);
    setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
      setLayout(null);
      add(btnTutup);
      btnTutup.addActionListener(this);
      btnTutup.setBounds(40,20,100,20);
      setVisible(true);
      }

      public void actionPerformed(ActionEvent e) {
      if(e.getSource()==btnTutup) {
          dispose();
          }
          }
      }
2. FFrame
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

class FFrame extends JFrame implements ActionListener{
    JButton btnTutup = new JButton ("TUTUP");

    public FFrame() {
    super("FRAME");
    setSize(200,100);
    setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
      setLayout(null);
      add(btnTutup);
      btnTutup.addActionListener(this);
      btnTutup.setBounds(40,20,100,20);
      setVisible(true);
      }

      public void actionPerformed(ActionEvent e) {
      if(e.getSource()==btnTutup) {
          dispose();
          }
          }
      }

3. MainMenu dari FDialog dan FFrame
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class Menu extends JFrame {
    JMenuBar menuBar ;
    JMenu file, buatBaru ;
    JMenuItem exit, frame, dialog, pesan ;


    public Menu () {
        setTitle ("Menu");
        setSize (200,200);
        file = new JMenu ("File");
        file.setMnemonic ('F');
        buatBaru = new JMenu ("Buat Baru");
        buatBaru.setMnemonic ('B');
        exit = new JMenuItem ("Exit");
        exit.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_X, ActionEvent.CTRL_MASK));
        frame = new JMenuItem ("Frame");
        frame.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_F, ActionEvent.CTRL_MASK));
        dialog = new JMenuItem ("Dialog");
        dialog.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_D, ActionEvent.CTRL_MASK));
        pesan = new JMenuItem ("Pesan");
        pesan.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_P, ActionEvent.CTRL_MASK));

        menuBar = new JMenuBar ();
        setJMenuBar (menuBar);
        menuBar.add (file);
            file.add (exit);
            menuBar.add (buatBaru);
                buatBaru.add (frame);
                buatBaru.add (dialog);
                buatBaru.add (pesan);


        exit.addActionListener (new ActionListener () {
            public void actionPerformed (ActionEvent e) {
                System.exit (0);
                }
                }
                );


        frame.addActionListener (new ActionListener () {
            public void actionPerformed(ActionEvent e) {
                new FFrame ();
                        }
                        }
                );



        dialog.addActionListener (new ActionListener () {
            public void actionPerformed(ActionEvent e) {
                new FDialog ();
                        }
                        }
                );


        pesan.addActionListener (new ActionListener () {
            public void actionPerformed (ActionEvent e) {
                JOptionPane.showMessageDialog (null, "Tutup Frame?", "Message", JOptionPane.QUESTION_MESSAGE);
            }
        }
        );


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


public class MainMenu1 {
    public static void main (String [] neno) {
        new Menu () ;
    }
}
Hasilnya Main menu




Hasil Jika dipilih meni item Frame Maka akan Muncul seperti berikut:



dan jika di pilih menu item Dialog maka akan muncul hasil seperti berikut: