Mega Code Archive

 
Categories / Java / Swing JFC
 

Icon behavior in Jbuttons

// : c14:Faces.java // Icon behavior in Jbuttons. // <applet code=Faces width=400 height=100></applet> // From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002 // www.BruceEckel.com. See copyright notice in CopyRight.txt. import java.awt.Container; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JApplet; import javax.swing.JButton; import javax.swing.JFrame; public class Faces extends JApplet {   private static Icon[] faces;   private JButton jb, jb2 = new JButton("Disable");   private boolean mad = false;   public void init() {     faces = new Icon[] {         new ImageIcon(getClass().getResource("Face0.gif")),         new ImageIcon(getClass().getResource("Face1.gif")),         new ImageIcon(getClass().getResource("Face2.gif")),         new ImageIcon(getClass().getResource("Face3.gif")),         new ImageIcon(getClass().getResource("Face4.gif")), };     jb = new JButton("JButton", faces[3]);     Container cp = getContentPane();     cp.setLayout(new FlowLayout());     jb.addActionListener(new ActionListener() {       public void actionPerformed(ActionEvent e) {         if (mad) {           jb.setIcon(faces[3]);           mad = false;         } else {           jb.setIcon(faces[0]);           mad = true;         }         jb.setVerticalAlignment(JButton.TOP);         jb.setHorizontalAlignment(JButton.LEFT);       }     });     jb.setRolloverEnabled(true);     jb.setRolloverIcon(faces[1]);     jb.setPressedIcon(faces[2]);     jb.setDisabledIcon(faces[4]);     jb.setToolTipText("Yow!");     cp.add(jb);     jb2.addActionListener(new ActionListener() {       public void actionPerformed(ActionEvent e) {         if (jb.isEnabled()) {           jb.setEnabled(false);           jb2.setText("Enable");         } else {           jb.setEnabled(true);           jb2.setText("Disable");         }       }     });     cp.add(jb2);   }   public static void main(String[] args) {     run(new Faces(), 400, 200);   }   public static void run(JApplet applet, int width, int height) {     JFrame frame = new JFrame();     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     frame.getContentPane().add(applet);     frame.setSize(width, height);     applet.init();     applet.start();     frame.setVisible(true);   } } ///:~