Membuat JButtonGlass Java Swing Make Over

kita kembali melanjutkan materi java kita minggu lalu. minggu lalu kita sudah membahas mengenai bagaimana membuat panel transparant java swing make over. Pada artikel kali ini, kita akan membahas masih tentang java swing make over, yaitu membuat JButton. karena menggunakan swing make over, jadi yang kita buat bukan JButton biasa, melainkan JButton dengan spesial effek yang dapat menarik perhatian., lihat penampakannya

Seperti biasanya, untuk membuat swing make over, kita harus membuat sebuah class dan meniru salah satu sifat swing yang ada dengan extends. karena berubung sekarang kita membuat button, jadi kita juga menambahkan MouseLisetener, agar ia dapat berubah ketika hover, dan ketika di  klik. 

Ikuti langkah berikut untuk membuatnya: 
1. buatlah sebuat class baru, beri nama ButtonGlass
2. Ketikkan Source Code berikut pada Class tadi
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
/**
 *
 * @author Razaq Nice
 */
public class ButtonGlass extends JButton{
 
    private Paint glass;
    private boolean over;
    private boolean press;
    public boolean isOver() {
        return over;
    }
    public void setOver(boolean over) {
        this.over = over;
        repaint();
    }
    public boolean isPress() {
        return press;
    }
    public void setPress(boolean press) {
        this.press = press;
        repaint();
    }
    public ButtonGlass() {
        setContentAreaFilled(false);
        setBorderPainted(false);
        setFocusPainted(false);
     
        addMouseListener(new MouseAdapter() {
            @Override
            public void mouseEntered(MouseEvent e) {
               setOver(true);
            }
            @Override
            public void mouseExited(MouseEvent e) {
              setOver(false);
            }
            @Override
            public void mousePressed(MouseEvent e) {
                setPress(true);
            }
            @Override
            public void mouseReleased(MouseEvent e) {
             setPress(false);
            }          
         
});
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
     
        Graphics2D gd = (Graphics2D) g.create();
     
        if(isOver()){
            glass = new GradientPaint(0, 0,new Color(1F,1F,1F,0F),0,getHeight(),new Color(1F,1F,1F,0.5F));
       if(isPress()){
           glass = new GradientPaint(0, 0,new Color(0.5F,0.5F,0.5F,0.5F),0,getHeight(),new Color(0.5F,0.5F,0.5F,0.5F));
       }
        }else{
            glass = new GradientPaint(0, 0,new Color(1F,1F,1F,0.5F),0,getHeight(),new Color(1F,1F,1F,0F));
        }
     
        gd.setPaint(glass);
        gd.fillRoundRect(0,0,getWidth(),getHeight(),50,50);
        gd.dispose();
     
    }
 
}
3. kemudian klik Clean and Build Project (Shift +F11)
4. setelah itu, buatlah form baru, kemudian drag and drop Class Button Class kedalam Form baru tadi ..
maka seperti inilah yang akan anda dapat

Normal
isOver()
isOver()
isPress()

isPress()

Selamat Mencoba, tanyakan jika ada yang mengganjal :)






2 comments:

  1. Pada saat mu nge-drag ke form baru, muncul pesan"
    Cannot load component class buttonglass from project:D:\dic.
    The class must be compiled and must be on the classpath of the project to winch this form belongs."
    …kenapa y? mohon bantuannya....mksii

    ReplyDelete
    Replies
    1. biasanya itu karena belum ngelakuin langkah No 3

      Delete

Tinggalkan Komentar, saran saya bagusnya komen menggunakan Name/ Url