Skip to content

Instantly share code, notes, and snippets.

@resarahadian
Created December 22, 2013 07:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save resarahadian/8079463 to your computer and use it in GitHub Desktop.
Save resarahadian/8079463 to your computer and use it in GitHub Desktop.
Membuat Transparant JButton
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.Shape;
import java.awt.geom.RoundRectangle2D;
import javax.swing.*;
@SuppressWarnings("serial")
public class ClButtonTransparant extends JButton{
private static final Color TL = new Color(1f,1f,1f,.2f);
private static final Color BR = new Color(0f,0f,0f,.4f);
private static final Color ST = new Color(1f,1f,1f,.2f);
private static final Color SB = new Color(1f,1f,1f,.1f);
private Color ssc;
private Color bgc;
private int r = 8;
public ClButtonTransparant(String text) {
super(text);
}
public ClButtonTransparant(String text, Icon icon) {
super(text, icon);
}
@Override public void updateUI() {
super.updateUI();
setContentAreaFilled(false);
setFocusPainted(false);
setOpaque(false);
setForeground(Color.WHITE);
}
@Override protected void paintComponent(Graphics g) {
int x = 0;
int y = 0;
int w = getWidth();
int h = getHeight();
Graphics2D g2 = (Graphics2D)g.create();
g2.setRenderingHint(
RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
Shape area = new RoundRectangle2D.Float(x, y, w-1, h-1, r, r);
ssc = TL;
bgc = BR;
ButtonModel m = getModel();
if(m.isPressed()) {
ssc = SB;
bgc = ST;
}else if(m.isRollover()) {
ssc = ST;
bgc = SB;
}
g2.setPaint(new GradientPaint(x, y, ssc, x, y+h, bgc, true));
g2.fill(area);
g2.setPaint(BR);
g2.draw(area);
g2.dispose();
super.paintComponent(g);
}
}
import javax.swing.JPanel;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
@SuppressWarnings("serial")
public class ClPanelTransparant extends JPanel
{
private Color clr;
public ClPanelTransparant()
{
setOpaque(false);
clr = new Color(getBackground().getRed(), getBackground().getRed(), getBackground().getGreen(),50);
}
public void setBackground(Color bg)
{
super.setBackground(bg);
clr = new Color(getBackground().getRed(), getBackground().getRed(), getBackground().getGreen(),50);
repaint();
}
protected void paintComponent(Graphics graph)
{
super.paintComponent(graph);
Graphics2D g2d = (Graphics2D) graph.create();
g2d.setColor(clr);
g2d.fillRect(0, 0, getWidth(), getHeight());
g2d.dispose();
}
}
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;
import javax.swing.border.TitledBorder;
import javax.swing.JButton;
import javax.swing.ImageIcon;
import java.awt.Font;
import java.awt.Color;
import javax.swing.SwingConstants;
@SuppressWarnings("serial")
public class frameTransparantButton extends JFrame {
private JPanel contentPane;
private JTextField txtCD;
private JTextField txtJudul;
private JLabel lblKdCd;
private JLabel lblJudul;
private JLabel lblStock;
private JLabel lblKategori;
private JTextField txtStock;
private JPanel panel;
private JButton btnSimpan;
private JButton btnUbah;
private JButton btnHapus;
private JLabel lblWall;
private JLabel lblIcon;
/**
* Create the frame.
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public frameTransparantButton()
{
setTitle("Transparant JButton");
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 640, 355);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
panel = new ClPanelTransparant();
panel.setBorder(new TitledBorder(new TitledBorder(null, "Data CD / DVD", TitledBorder.RIGHT, TitledBorder.TOP, null, null), "Data CD / DVD", TitledBorder.RIGHT, TitledBorder.TOP, null, null));
panel.setBounds(16, 21, 430, 225);
contentPane.add(panel);
panel.setLayout(null);
lblKdCd = new JLabel("Kd CD / DVD : ");
lblKdCd.setForeground(new Color(255, 204, 255));
lblKdCd.setFont(new Font("Comic Sans MS", Font.BOLD, 12));
lblKdCd.setBounds(6, 34, 102, 15);
panel.add(lblKdCd);
txtCD = new JTextField();
txtCD.setBounds(120, 28, 205, 27);
panel.add(txtCD);
txtCD.setColumns(10);
lblJudul = new JLabel("Judul : ");
lblJudul.setForeground(new Color(255, 204, 255));
lblJudul.setFont(new Font("Comic Sans MS", Font.BOLD, 12));
lblJudul.setBounds(6, 73, 60, 15);
panel.add(lblJudul);
txtJudul = new JTextField();
txtJudul.setBounds(120, 67, 277, 27);
panel.add(txtJudul);
txtJudul.setColumns(10);
lblKategori = new JLabel("Kategori : ");
lblKategori.setForeground(new Color(255, 204, 255));
lblKategori.setFont(new Font("Comic Sans MS", Font.BOLD, 12));
lblKategori.setBounds(6, 114, 86, 15);
panel.add(lblKategori);
JComboBox cbKategori = new JComboBox();
cbKategori.setBounds(120, 106, 252, 27);
panel.add(cbKategori);
cbKategori.setModel(new DefaultComboBoxModel(new String[] {"== Pilih ==", "Drama", "Kartun"}));
lblStock = new JLabel("Stock : ");
lblStock.setForeground(new Color(255, 204, 255));
lblStock.setFont(new Font("Comic Sans MS", Font.BOLD, 12));
lblStock.setBounds(6, 159, 60, 15);
panel.add(lblStock);
txtStock = new JTextField();
txtStock.setBounds(120, 153, 122, 27);
panel.add(txtStock);
txtStock.setColumns(10);
btnSimpan = new ClButtonTransparant("Simpan");
btnSimpan.setHorizontalTextPosition(SwingConstants.CENTER);
btnSimpan.setVerticalTextPosition(SwingConstants.BOTTOM);
btnSimpan.setVerticalAlignment(SwingConstants.BOTTOM);
btnSimpan.setIcon(new ImageIcon("/home/resa/Aplikasi Java/SwingJava/src/TransparantButton/simpan.png"));
btnSimpan.setBounds(16, 258, 141, 65);
contentPane.add(btnSimpan);
btnUbah = new ClButtonTransparant("Ubah");
btnUbah.setHorizontalTextPosition(SwingConstants.CENTER);
btnUbah.setVerticalTextPosition(SwingConstants.BOTTOM);
btnUbah.setVerticalAlignment(SwingConstants.BOTTOM);
btnUbah.setIcon(new ImageIcon("/home/resa/Aplikasi Java/SwingJava/src/TransparantButton/ubah.png"));
btnUbah.setBounds(193, 258, 141, 65);
contentPane.add(btnUbah);
btnHapus = new ClButtonTransparant("Hapus");
btnHapus.setHorizontalTextPosition(SwingConstants.CENTER);
btnHapus.setVerticalTextPosition(SwingConstants.BOTTOM);
btnHapus.setVerticalAlignment(SwingConstants.BOTTOM);
btnHapus.setIcon(new ImageIcon("/home/resa/Aplikasi Java/SwingJava/src/TransparantButton/hapus.png"));
btnHapus.setBounds(372, 258, 125, 65);
contentPane.add(btnHapus);
lblIcon = new JLabel("");
lblIcon.setIcon(new ImageIcon("/home/resa/Aplikasi Java/SwingJava/src/TransparantButton/icon.png"));
lblIcon.setBounds(480, 74, 141, 127);
contentPane.add(lblIcon);
lblWall = new JLabel("");
lblWall.setIcon(new ImageIcon("/home/resa/Aplikasi Java/SwingJava/src/TransparantButton/wall.jpg"));
lblWall.setBounds(0, -11, 638, 340);
contentPane.add(lblWall);
setLocationRelativeTo(null);
}
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
frameTransparantButton frame = new frameTransparantButton();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment