New Post

[Java] [Swing] [Netbeans] [ Custom Palette ] jButton Round Mac OS 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 jButtonMac.java.




  • Selanjtnya pada java class yang sudah di buat masukan kode berikut 


  1.     
  2. import java.awt.Color;  
  3. import java.awt.Font;  
  4. import java.awt.Graphics;  
  5. import java.awt.Graphics2D;  
  6. import java.awt.RenderingHints;  
  7. import java.awt.Shape;  
  8. import java.awt.event.MouseAdapter;  
  9. import java.awt.event.MouseEvent;  
  10. import java.awt.geom.RoundRectangle2D;  
  11. import javax.swing.JButton;  
  12.   
  13. /** 
  14.  * 
  15.  * @author anerfinity 
  16.  */  
  17. public class jButtonMac extends JButton {  
  18.   
  19.     private Color AeMouseHover = new Color(0168255);  
  20.     private Color AeMousePress = new Color(0151230);  
  21.     private Color AeWarnaBackground = new Color(30110240);  
  22.     private boolean enter, press;  
  23.   
  24.     //rgb(0, 151, 230)  
  25.     public boolean isEnter() {  
  26.         return enter;  
  27.     }  
  28.   
  29.     public void setEnter(boolean enter) {  
  30.         this.enter = enter;  
  31.         repaint();  
  32.     }  
  33.   
  34.     public boolean isPress() {  
  35.         return press;  
  36.     }  
  37.   
  38.     public void setPress(boolean press) {  
  39.         this.press = press;  
  40.         repaint();  
  41.     }  
  42.   
  43.     public jButtonMac() {  
  44.         setOpaque(false);  
  45.         setBorderPainted(false);  
  46.         setFocusPainted(false);  
  47.         setContentAreaFilled(false);  
  48.         setForeground(Color.white);  
  49.         setFont(getFont().deriveFont(Font.PLAIN));  
  50.         addMouseListener(new MouseAdapter() {  
  51.   
  52.             @Override  
  53.             public void mouseEntered(MouseEvent e) {  
  54.                 super.mouseEntered(e);  
  55.                 setEnter(true);  
  56.             }  
  57.   
  58.             @Override  
  59.             public void mouseExited(MouseEvent e) {  
  60.                 super.mouseExited(e);  
  61.                 setEnter(false);  
  62.             }  
  63.   
  64.             @Override  
  65.             public void mousePressed(MouseEvent e) {  
  66.                 super.mousePressed(e);  
  67.                 setPress(true);  
  68.             }  
  69.   
  70.             @Override  
  71.             public void mouseReleased(MouseEvent e) {  
  72.                 super.mouseReleased(e);  
  73.                 setPress(false);  
  74.             }  
  75.         });  
  76.     }  
  77.   
  78.     @Override  
  79.     protected void paintComponent(Graphics g) {  
  80.         Graphics2D gd = (Graphics2D) g.create();  
  81.         Color warna = AeWarnaBackground;  
  82.         Shape shape = new RoundRectangle2D.Double(00, getWidth(), getHeight(), getHeight(), getHeight());  
  83.         if (isEnter()) {  
  84.             warna = AeMouseHover;  
  85.             if (isPress()) {  
  86.                 warna = AeMousePress;  
  87.             }  
  88.         }  
  89.         gd.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);  
  90.         gd.setColor(warna);  
  91.         gd.fill(shape);  
  92.         gd.dispose();  
  93.         super.paintComponent(g);  
  94.     }  
  95.   
  96.     public Color getAeWarnaBackground() {  
  97.         return this.AeWarnaBackground;  
  98.     }  
  99.   
  100.     public void setAeWarnaBackground(Color bgColor) {  
  101.         this.AeWarnaBackground = bgColor;  
  102.     }  
  103.   
  104. //Warna mouse hover Button  
  105.     public Color getAeMouseHover() {  
  106.         return this.AeMouseHover;  
  107.     }  
  108.   
  109.     public void setAeMouseHover(Color mousehover) {  
  110.         this.AeMouseHover = mousehover;  
  111.     }  
  112.   
  113. //Warna mouse press Button  
  114.     public Color getAeMousePress() {  
  115.         return this.AeMousePress;  
  116.     }  
  117.   
  118.     public void setAeMousePress(Color mousepress) {  
  119.         this.AeMousePress = mousepress;  
  120.     }  
  121. }    

  • 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 jButtonMac kedalam Form aktif




  • Untuk merubah Warnabackground, Mousehover dan Mousepress berada di menu properties di tab sebelah kanan




No comments