Swing Make Over

Java Swing ?

. Merupakan sekumpulan kelas kelas yang digunakan untuk mengembangkan aplikasi berbasis GUI(Graphical User Interface)
. Java Swing adalah salah satu dari banyaknya solusi untuk mengembangkan aplikasi berbasis GUI.
. Java Swing merupakan versi peningkatan dari AWT(Abstract Window Toolkit)

Kelebihan Java Swing
. Di bundle dalam Java Development Kit
. Netral terhadap semua sistem operasi
. Mudah untuk dikembangkan

Tentang Java Swing
- Kelas kelas dalam Java Swing biasanya diawali dengan huruf J
- Button dalam Java Swing bernama JButton
- Label dalam Java Swing bernama Jlabel
- Kelas kelas java swing terdapat paket javax.swing.*

Komponen Sederhana :
- Jlabel = untuk menampilkan label (tulisan)
- JTextField = untuk menerima input teks
- JPasswordField = untuk menerima input teks yg bersifat rahasia
- JButton = untuk menampilkan tombol

Komponen pilihan :
- JCheckbox = untuk menerima masukan dan diperbolehkan memilih lebih dari satu jawaban
- JRadioButton = untuk menerima satu masukan dari banyaknya pilihan yang ada
- JComboBox = untuk menerima satu masukan dari beberapa pilihan. dan datanya dapat berubah secara dinamis .

Komponen dalam ScrollPane :
- JScrollPane = komponen yang digunakan untuk menampung komponen yg besarnya melebihi dimensi JScrollPane itu sendiri
- JTextArea = komponen yang digunakan untuk menerima masukan tulisan yg boleh lebih dari satu baris

Komponen Menu :
- JMenuBar = Komponen tempat menu yg berada pada bagian atas form
- JPopupMenu = komponen tempat menu yg dapat diterapkan pada komponen lain
- JMenu = komponen menu yg dapat berisikan menu lain
- JMenuItem = komponen menu yang tidak dapat memiliki menu lain

Komponen Dialog Pilihan :
- JOptionPane = komponen dialog yang digunakan untuk menampilkan pilihan atau pesan
- showConfirmDialog = meminta konfirmasi dari user seperti yes/ no/ cancel
- showInputDialog = meminta input dari user, baik berupa input text menggunakan JTextField maupun pilihan menggunakan JComboBox
- showMessageDialog = memberitahukan user tentang apa yg baru saja terjadi

Komponen BerModel :
- Model = sebagai penampung data
- JList = merupakan komponen pilihan seperti JComboBox namun dapat menerima input lebih dari satu
- JTabel = merupakan komponen berupa tabel
- Model untuk JList adalah ListModel > Implementasi default untuk ListModel adalah DefaultListModel
- Model untuk JTable adalah TableModel > Implementasi default untuk TableModel adalah DefaultTableModel

Interaksi Komponen :
- Dalam Java Swing , interaksi setiap komponen dengan user dinamakan events
- Events standar untuk komponen- komponen sederhana adalah ActionListener
- Interaksi dengan mouse adalah MouseListener atau MouseMotionListener

Action Listener
merupakan events yang terjadi saat :
- Mengklik tombol
- Menekan enter pada JTextField dan JPasswordField
- Pemilihan JMenuItem
- Pemilihan Item pada JComboBox

Contoh Aplikasi open Source berbasis Java Swing :
- Aerith


- eMovieRental


source : http://www.slideshare.net/eecchhoo/pengenalan-java-swing


SwingMakeOver merupakan teknik memanipulasi tampilan User Interfaces (Java Swing). Teknik ini dilakukan dengan menggunakan penggambaran agar tampilan komponen-komponen Java Swing seperti TextField, Button dan lain-lain menjadi kelihatan lebih cantik . Ada juga yang menyebut SwingMakeover dengan sebutan SwingX.
Kelebihannya antara lain adalah sebagai berikut :

  • Terdapat  fungsi addHighlighter() yang digunakan untuk memberi highlight pada sel tertentu (bisa berupa warna background berbeda dan sebagainya).
  • SwingX juga menawarkan komponen baru, seperti JXDatePicker. Ini adalah contoh komponen yang sering dibutuhkan oleh aplikasi, tetapi tidak disediakan oleh Swing secara langsung.
  • SwingX juga memiliki kotak dialog siap pakai, seperti JXTipOfTheDay, yang umum dipakai untuk menampilkan tips di program.

Contoh membuat button make over :

import java.awt.Color;

import java.awt.GradientPaint;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.RenderingHints;

import javax.swing.ButtonModel;

import javax.swing.JButton;

public class ButtonMakeOver extends JButton {

    public ButtonMakeOver(String text) {

   setText(text);

        setBorderPainted(false);

        setContentAreaFilled(false);

        setFocusPainted(false);

        setOpaque(false);

        setForeground(Color.white);

    }

    @Override

    protected void paintComponent(Graphics g) {

        ButtonModel buttonModel = getModel();

        Graphics2D gd = (Graphics2D) g.create();

                gd.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

                gd.setPaint(new   GradientPaint(0,   0,   Color.white,   0, getHeight(), new Color(0, 0, 0, 0)));

        if (buttonModel.isRollover()) {

            gd.setPaint(new GradientPaint(0, 0, new Color(0, 0, 0, 0), 0, getHeight(), Color.white));

            if (buttonModel.isPressed()) {

                gd.setPaint(new GradientPaint(0, 0, Color.white, 0, getHeight(), Color.white));

                setForeground(Color.BLACK);

            } else {

                setForeground(Color.white);

            }

        }

        gd.fillRoundRect(0, 0, getWidth(), getHeight(), 25, 25);

        gd.dispose();

        super.paintComponent(g);

    }

}
Tulis source codeberikut (Test.java) :

import java.awt.BorderLayout;

import java.awt.Color;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class Test extends JFrame {

    private ButtonMakeOver button =new ButtonMakeOver("My Button");

    private JPanel panel;

    public Test() {

        panel = new JPanel(null);

        panel.setBackground(Color.BLACK);

        panel.add(button);

        button.setBounds(20, 20, 120, 23);

        setLayout(new BorderLayout());

        add(panel, BorderLayout.CENTER);

        setSize(200,100);

        setDefaultCloseOperation(EXIT_ON_CLOSE);

    }

    public static void main(String[] args) {

        new Test().setVisible(true);

    }

}

- to be continue :D