public class MyButtonUI extends BasicButtonUI { private enum STATUS { OVER, CLICKED, OUT; } STATUS status = STATUS.OUT; public void installUI(JComponent c) { super.installUI(c); c.addMouseListener(new MouseListener() { @Override public void mouseClicked(MouseEvent event) { } @Override public void mouseEntered(MouseEvent event) { status = STATUS.OVER; } @Override public void mouseExited(MouseEvent event) { status = STATUS.OUT; } @Override public void mousePressed(MouseEvent event) { status = STATUS.CLICKED; } public void mouseReleased(MouseEvent event) { // si l'on est plus sur le bouton if (event.getY() > 0) { status = STATUS.OUT; } else { status = STATUS.OVER; } } }); } public void paint(Graphics g, JComponent c) { Image image = null; MyButton b = (MyButton) c; switch (status) { case OVER: image = b.getImageOver(); break; case CLICKED: image = b.getImageClicked(); break; case OUT: default: image = b.getImageOut(); break; } g.drawImage(image, 0, 0, c.getWidth(), c.getHeight(), c); } } public class MyButton extends JButton { private Image imageOut; private Image imageOver; private Image imageClicked; public MyButton(ImageIcon anImg, ImageIcon anImgOn, ImageIcon anImgClicked) { this.imageOut = anImg.getImage(); this.imageOver = anImgOn.getImage(); this.imageClicked = anImgClicked.getImage(); MyButtonUI ui = new MyButtonUI(); setUI(ui); } public Image getImageClicked() { return imageClicked; } public Image getImageOut() { return imageOut; } public Image getImageOver() { return imageOver; } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question