[Java] [Swing] [Netbeans] [ Custom Palette ] jButton Flat Metro Style
Pada project java yang telah di buat, buatlah class baru, untuk membuat java class baru, klik kanan pada java package ➜ New ➜ Java Class. sebagai contoh saya beri nama jButtonMetroStyle.java. Untuk langkah-langkah lengkap dengan gambar lihat tutorial sebelumnya. Selanjutnya pada java class yang sudah di buat masukan kode berikut :
- import java.awt.Color;
- import java.awt.Font;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.RenderingHints;
- import java.awt.Shape;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- import java.awt.geom.RoundRectangle2D;
- import javax.swing.JButton;
- /**
- *
- * @author anerfinity
- */
- public class jButtonMetroStyle extends JButton {
- private Color MouseHover = new Color(255, 111, 99);
- private Color MousePress = new Color(36, 168, 110);
- private Color WarnaBackground = new Color(215, 77, 75);
- private boolean enter, press;
- public boolean isEnter() {
- return enter;
- }
- public void setEnter(boolean enter) {
- this.enter = enter;
- repaint();
- }
- public boolean isPress() {
- return press;
- }
- public void setPress(boolean press) {
- this.press = press;
- repaint();
- }
- public jButtonMetroStyle() {
- setOpaque(false);
- setBorderPainted(true);
- setFocusPainted(false);
- setContentAreaFilled(false);
- setForeground(Color.white);
- setFont(getFont().deriveFont(Font.PLAIN));
- addMouseListener(new MouseAdapter() {
- @Override
- public void mouseEntered(MouseEvent e) {
- super.mouseEntered(e);
- setEnter(true);
- }
- @Override
- public void mouseExited(MouseEvent e) {
- super.mouseExited(e);
- setEnter(false);
- }
- @Override
- public void mousePressed(MouseEvent e) {
- super.mousePressed(e);
- setPress(true);
- }
- @Override
- public void mouseReleased(MouseEvent e) {
- super.mouseReleased(e);
- setPress(false);
- }
- });
- }
- @Override
- protected void paintComponent(Graphics g) {
- Graphics2D gd = (Graphics2D) g.create();
- Color warna = WarnaBackground;
- Shape shape = new RoundRectangle2D.Double(0, 0, getWidth(), getHeight(), 0, 0);
- if (isEnter()) {
- warna = MouseHover;
- if (isPress()) {
- warna = MousePress;
- }
- }
- gd.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
- gd.setColor(warna);
- gd.fill(shape);
- gd.dispose();
- super.paintComponent(g);
- }
- public Color getWarnaBackground() {
- return this.WarnaBackground;
- }
- public void setWarnaBackground(Color bgColor) {
- this.WarnaBackground = bgColor;
- }
- //Warna mouse hover Button
- public Color getMouseHover() {
- return this.MouseHover;
- }
- public void setMouseHover(Color mousehover) {
- this.MouseHover = mousehover;
- }
- //Warna mouse press Button
- public Color getMousePress() {
- return this.MousePress;
- }
- public void setMousePress(Color mousepress) {
- this.MousePress = mousepress;
- }
- }
- Simpan dan lakukan proses Clean and build project. dapat dengan dua cara klik pada icon palu dan sapu atau klik kanan pada project dan pilih clean and Build
- Drag class jButtonMetroStyle kedalam Form aktif
- Untuk merubah Warnabackground, Mousehover dan Mousepress berada di menu properties di tab sebelah kanan.
- cara lengkap dapat di lihat pada tuorial sebelumnya
No comments