Jumat, 24 Desember 2010

J2SE1-Swing Manipulation(TextBox)-Netbeans and Eclipse

Dalam membuat aplikasi,layout atau tampilan sangat mempengaruhi. Berikut kita pelajari cara membuat component-component. Sebelum itu,kita harus membuat library untuk menampung component textbook....
Biar pengen cepet kita download library yang dah jadi....(Di bawah neh)....
Pertama kali kita akan membuat TextBox:

  • Buatlah class untuk membuat object swing textbox dengan extend textbox(saking Library).
    • Ketikkan source berikut ini:
     /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */

    package Template;

    /**
     *
     * @author United
     */

    import usu.widget.TextBox;
    import usu.widget.text.DefaultDocument;

    //~--- JDK imports ------------------------------------------------------------

    import java.awt.Color;
    import java.awt.Cursor;
    import java.awt.GradientPaint;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.RenderingHints;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;

    import javax.swing.border.EmptyBorder;
    import javax.swing.text.AttributeSet;
    import javax.swing.text.BadLocationException;

    /**
     *
     * @author usu
     */
    public class TextGlass extends TextBox {
        private static final long serialVersionUID = -1;

        /**
         *
         */
        public TextGlass() {
            super();
            setDocument(new DefaultDocument() {
                private static final long serialVersionUID = -1;
                @Override
                public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
                    if (StringUtil.containSemiColomn(str)) {
                        return;
                    }

                    super.insertString(offs, str, a);
                }
            });
            setOpaque(false);
            setBorder(new EmptyBorder(5, 10, 5, 10));
            setHorizontalAlignment(CENTER);

    Di sini kita membuat mouse event(pada saat kursor diatas dan pada saat kursor diluar):

            addMouseListener(new MouseAdapter() {
                @Override
                public void mouseEntered(MouseEvent e) {
                    setCursor(Cursor.getPredefinedCursor(Cursor.TEXT_CURSOR));
                }
                @Override
                public void mouseExited(MouseEvent e) {
                    setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
                }
            });
        }

    Kita buat class untuk membuat object gambar..(semua element tersedia di dalam swing-Graphic)

        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);

            if (isEnabled()) {
                Graphics2D g2 = (Graphics2D) g.create();

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

                Color         dark  = new Color(1F, 1F, 1F, 0F);
                Color         light = new Color(1F, 1F, 1F, 0.3F);
                GradientPaint paint = new GradientPaint(0, 0, light, 0, getHeight() / 2, dark);

                g2.setPaint(paint);
                g2.fillRoundRect(0, 0, getWidth(), getHeight(), getHeight(), getHeight());
                g2.setColor(Color.BLACK);
                g2.drawRoundRect(0, 0, getWidth() - 1, getHeight() - 1, getHeight(), getHeight());
                g2.dispose();
            } else {
                Graphics2D g2 = (Graphics2D) g.create();

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

                Color light = new Color(1F, 1F, 1F, 0.3F);

                g2.setColor(light);
                g2.fillRoundRect(0, 0, getWidth(), getHeight(), getHeight(), getHeight());
                g2.setColor(Color.BLACK);
                g2.drawRoundRect(0, 0, getWidth() - 1, getHeight() - 1, getHeight(), getHeight());
                g2.dispose();
            }
        }
    }

    Jadi pada intinya kita membuat graphic object di atas object standar (extend-script berwarna merah) sehingga seolah-olah kita membuat object baru.  Di sini kita hanya memanipulasi tampilan standar tanpa mengganti keseluruhan. Jika kita hapus class paintComponent, maka kita bisa lihat bentuk asli/standar dari textbox.

    Sumber: Buku Prentice.Hall.Filthy.Rich.Clients.Aug.2007
    Download Library(q dapet dari friend neh....) daripada buat atu-atu.....lo pengen belajar undeploy j neh library.Download Library

    1 komentar: