import javax.swing.*; import java.awt.event.*; public class ImageTest { public static void main(String[] args) { ImagePanel panel = new ImagePanel(new ImageIcon("images/background.png").getImage()); ImageLabel label = new ImageLabel(new ImageIcon("images/reactor.png")); label.setLocation(29,37); panel.add(label); final ImageButton button = new ImageButton("images/button.png"); button.setPressedIcon(new ImageIcon("images/button-down.png")); button.setRolloverIcon(new ImageIcon("images/button-over.png")); button.setSelectedIcon(new ImageIcon("images/button-sel.png")); button.setRolloverSelectedIcon(new ImageIcon("images/button-sel-over.png")); button.setDisabledIcon(new ImageIcon("images/button-disabled.png")); button.setDisabledSelectedIcon(new ImageIcon("images/button-disabled-selected.png")); button.setLocation(60,74); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { button.setSelected(!button.isSelected()); System.out.println("selecting"); } }); //button.setSelected(true); //button.setDisabled(false); panel.add(button); final JCheckBox checkbox = new JCheckBox("Disable"); checkbox.setLocation(70,150); checkbox.setOpaque(false); checkbox.setSize(checkbox.getPreferredSize()); panel.add(checkbox); checkbox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { button.setEnabled(!checkbox.isSelected()); } }); JFrame frame = new JFrame("Hack #XX: Image Components"); frame.getContentPane().add(panel); frame.pack(); frame.setVisible(true); } } import java.awt.*; import javax.swing.*; public class ImageButton extends JButton { public ImageButton(String img) { this(new ImageIcon(img)); } public ImageButton(ImageIcon icon) { setIcon(icon); setMargin(new Insets(0,0,0,0)); setIconTextGap(0); setBorderPainted(false); setBorder(null); setText(null); setSize(icon.getImage().getWidth(null), icon.getImage().getHeight(null)); } } import java.awt.*; import javax.swing.*; public class ImagePanel extends JPanel { private Image img; public ImagePanel(String img) { this(new ImageIcon(img).getImage()); } public ImagePanel(Image img) { this.img = img; Dimension size = new Dimension(img.getWidth(null),img.getHeight(null)); setPreferredSize(size); setMinimumSize(size); setMaximumSize(size); setSize(size); setLayout(null); } public void paintComponent(Graphics g) { g.drawImage(img,0,0,null); } } import java.awt.*; import javax.swing.*; public class ImageLabel extends JLabel { public ImageLabel(String img) { this(new ImageIcon(img)); } public ImageLabel(ImageIcon icon) { setIcon(icon); //setMargin(new Insets(0,0,0,0)); setIconTextGap(0); //setBorderPainted(false); setBorder(null); setText(null); setSize(icon.getImage().getWidth(null), icon.getImage().getHeight(null)); } }