Java – Membuat Swing Transparent Button

Mengapa mesti dibuat transparent ? padahal kita bisa saja menggunakan JLabel jika toh dibuat transparent.
Tentunya ada perbedaan mendasar antara JLabel dan JButton tapi kemudahan menambahkan action click adalah salah satunya kenapa saya memilih untuk membuat transparent JButton.

Untuk memberikan contoh saya buat class TransparentButton.java yang nantinya saya panggil sebagai extends dari class JButton, untuk lebih menunjukkan manfaatnya saya memanfaatkan IconsFactory.java untuk menambahkan icon ke JButton. Dan sebagai sentuhan terakhir saya set kan tooltip beserta action click.

Silahkan disimak…

TransparentButton.java

package swing;

import javax.swing.JButton;

public class TransparentButton extends JButton {


	public TransparentButton() {
		super();
		setFocusPainted(false);
		setBorderPainted(false);
		setContentAreaFilled(false);
		setOpaque(false);

	}

}

Contoh Penggunaan :

		TransparentButton btnNewButton = new TransparentButton();
		btnNewButton.setIcon(IconsFactory.HOME);
		btnNewButton.setToolTipText("Ini adalah Transparent Button");
		btnNewButton.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				JOptionPane.showMessageDialog(null, "Thank you for click ME");
			}
		});


Code lengkap contoh penggunaan :
MainWindow.java
need class : IconsFactory.java, GradientPanel.java, TransparentButton.java

		package swing;
import java.awt.BorderLayout;


public class MainWindow extends JFrame {

	private GradientPanel contentPane;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					MainWindow frame = new MainWindow();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public MainWindow() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new GradientPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		contentPane.setLayout(new BorderLayout(0, 0));
		setContentPane(contentPane);
		
		TransparentButton btnNewButton = new TransparentButton();
		btnNewButton.setIcon(IconsFactory.HOME);
		btnNewButton.setToolTipText("Ini adalah Transparent Button");
		btnNewButton.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				JOptionPane.showMessageDialog(null, "Thank you for click ME");
			}
		});
		contentPane.add(btnNewButton, BorderLayout.CENTER);
	}

}

Screenshoot :
Transparent Button

Semoga bermanfaat,

mazipan-signature

Be a good reader, leave your comment please.

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s