Cara Melakukan Swing Makeover JButton di Java

Cara Melakukan Swing Makeover JButton di Java - Pada artikel ini saya akan membahas tutorial cara melakukan makeover JButton, JButton merupakan komponen java swing yang berupa sebuah tombol. Saya akan melakukan makeover JButton dengan memberikan efek glass pada JButton sehingga terlihat transparan seperti kaca. Apa kalian tahu cara melakukan swing makeover pada JButton? bagaimana cara membuat JButton memiliki efek glass? saya akan memberikan contoh souce code cara melakukan swing makeover JButton pada bahasa pemrograman java.


Pada contoh makeover JButton saya menggunakan JPanel yang telah ditambahkan image agar efek glass terlihat jelas. Untuk cara membuat JPanel dengan background image tersebut silahkan kunjungi artikel cara menambahkan background image pada JPanel di Java Swing.

Bagaimana cara membuat JButton memiliki efek glass?

Agar JButton memiliki efek transparan seperti kaca atau glass kalian perlu membuat sebuah class yang turunan dari JButton (extends JButton) kemudian lakukan manipulasi atau istilah swing makeover.

Bagaimana cara melakukan swing makeover pada JButton?

Untuk  source code makeover JButton dan menambahkan efek glass, saya berikan contoh cara melakukan manipulasi JButton dengan memberikan efek glass.

import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.*;
import javax.swing.ImageIcon;
import javax.swing.JButton;

/**
 *
 * @author Akira
 */
public class ButtonEffectGlass extends JButton {

    private boolean over;
    private boolean press;

    public ButtonEffectGlass(String url) {
        setFocusPainted(false);
        setBorderPainted(false);
        setContentAreaFilled(false);
        setIcon(new ImageIcon(getClass().getResource(url)));
        addMouseListener(new MouseAdapter() {

            @Override
            public void mousePressed(MouseEvent e) {
                setPress(true);
            }

            @Override
            public void mouseEntered(MouseEvent e) {
                setOver(true);
            }

            @Override
            public void mouseExited(MouseEvent e) {
                setOver(false);
            }

            @Override
            public void mouseReleased(MouseEvent e) {
                setPress(false);
            }
        });
    }

    public boolean isOver() {
        return over;
    }

    public boolean isPress() {
        return press;
    }

    public void setOver(boolean over) {
        this.over = over;
        repaint();
    }

    public void setPress(boolean press) {
        this.press = press;
        repaint();
    }

    @Override
    protected void paintComponent(Graphics g) {
        Color lighting = new Color(1F, 1F, 1F, 0.7F);
        Color shadow = new Color(1F, 1F, 1F, 0F);

        GradientPaint gradientPaint = null;

        if (over) {
            if (press) {
                gradientPaint = new GradientPaint(0, 0, lighting, 0, getHeight(), lighting);
            } else {
                gradientPaint = new GradientPaint(0, 0, shadow, 0, getHeight(), lighting);
            }
        } else {
            gradientPaint = new GradientPaint(0, 0, lighting, 0, getHeight(), shadow);
        }

        Graphics2D graphics2D = (Graphics2D) g.create();
        graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, 
            RenderingHints.VALUE_ANTIALIAS_ON);
        graphics2D.setPaint(gradientPaint);
        graphics2D.fillRoundRect(0, 0, getWidth(), getHeight(), 10, 10);

        super.paintComponent(g);
    }
}

Buatlah sebuah JFrame untuk menampilkan ButtonEffectGlass tersebut.

import java.awt.FlowLayout;
import javax.swing.JFrame;

/**
 *
 * @author Akira
 */
public class ContohMakeOverJButton extends JFrame{
    
    public ContohMakeOverJButton(){
        setTitle("Contoh Makeover JButton");
        setSize(400, 300);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        userInterfaceGUI();
        setVisible(true);
    }
    
    private void userInterfaceGUI(){
        PanelImage pan = new PanelImage("../images/background2.jpg");
        pan.setLayout(new FlowLayout(FlowLayout.CENTER, 0, 100));
        
        ButtonEffectGlass btn = new ButtonEffectGlass("../images/open.png");
        pan.add(btn);
        
        getContentPane().add(pan);
    }
    
    public static void main(String[] args){
        ContohMakeOverJButton obj = new ContohMakeOverJButton();
    }
}

Sekian tutorial cara melakukan makeover pada komponen java swing JButton agar memiliki efek glass. Semoga bermanfaat dan silahkan tinggalkan komentar.

Copyrighted.com Registered & Protected 
IHID-AUQQ-NDQJ-UZT3


EmoticonEmoticon