@@ -0,0 +1,1574 @@
+package ryanafzal.window;%0A%0Aimport java.awt.Graphics;%0Aimport java.awt.event.MouseAdapter;%0Aimport java.awt.event.MouseEvent;%0Aimport java.awt.image.BufferedImage;%0Aimport java.io.File;%0Aimport java.io.IOException;%0A%0Aimport javax.imageio.ImageIO;%0A%0A@SuppressWarnings(%22serial%22)%0Apublic class WindowButton extends WindowComponent %7B%0A%09%0A%09BufferedImage image_static;%0A%09BufferedImage image_hover;%0A%09BufferedImage image_pressed;%0A%09boolean mouse_hover;%0A%09%0A%09public WindowButton(String filename_static, String filename_hover, String filename_pressed) %7B%0A%09%09%0A%09%09addMouseListener(new MouseAdapter() %7B%0A%0A            @Override%0A            public void mouseEntered(MouseEvent me) %7B%0A                mouse_hover = true;%0A            %7D%0A            %0A            @Override%0A            public void mouseExited(MouseEvent me2) %7B%0A            %09mouse_hover = false;%0A            %7D%0A            %0A        %7D);%0A%09%09%0A%09%09boolean isLoaded = loadImages(filename_static, filename_hover, filename_pressed);%0A%09%09%0A%09%09if (isLoaded) %7B%0A%09%09%09image = image_static;%0A%09%09%7D%0A%09%7D%0A%09%0A%09public boolean loadImages(String filename_static, String filename_hover, String filename_pressed) %7B%0A%09%09%09try %7B%0A%09%09%09    image_static = ImageIO.read(new File(filename_static));%0A%09%09%09    image_hover = ImageIO.read(new File(filename_hover));%0A%09%09%09    image_pressed = ImageIO.read(new File(filename_pressed));%0A%09%09%09    return true;%0A%09%09%09%7D catch (IOException e) %7B%0A%09%09%09%09return false;%0A%09%09%09%7D%0A%09%7D%0A%09%0A%09@Override%0A%09public void paintComponent(Graphics g) %7B%0A%09%09if (mouse_hover) %7B%0A%09%09%09g.drawImage(image_hover,getX(),getY(),null);%0A%09%09%7D else %7B%0A%09%09%09g.drawImage(image_static,getX(),getY(),null);%0A%09%09%7D%0A    %7D%0A%0A%7D%0A

Create WindowButton.java