本节主要讲解图示(Icons)
我们常常能够看到每个按钮上都有一个小小的图片。下面我们就讲讲Icons和按钮搭配的一些用法。先看看下面的程序代码
import
java.awt.
*
;
import java.awt.event. * ;
public class Faces extends JApplet ... {
static String path = "E:/java/java编程思想源代码/c13/";
static Icon[] faces = ...{ new ImageIcon(path + "face0.gif"),
new ImageIcon(path + "face1.gif"),
new ImageIcon(path + "face2.gif"),
new ImageIcon(path + "face3.gif"),
new ImageIcon(path + "face4.gif"), };
JButton jb = new JButton("JButton", faces[3]),//构造函数中设置图片
jb2 = new JButton("Disable");
boolean mad = false;
public void init() ...{
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) ...{
Faces applet = new Faces();
JFrame frame = new JFrame(applet.getClass().toString().substring(6));// 建立一个名字为Buttons的frame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// frame关闭方法
frame.getContentPane().add(applet);
applet.init();
applet.start();
frame.setSize(600, 300);
frame.setVisible(true);
}
}
import java.awt.event. * ;
public class Faces extends JApplet ... {
static String path = "E:/java/java编程思想源代码/c13/";
static Icon[] faces = ...{ new ImageIcon(path + "face0.gif"),
new ImageIcon(path + "face1.gif"),
new ImageIcon(path + "face2.gif"),
new ImageIcon(path + "face3.gif"),
new ImageIcon(path + "face4.gif"), };
JButton jb = new JButton("JButton", faces[3]),//构造函数中设置图片
jb2 = new JButton("Disable");
boolean mad = false;
public void init() ...{
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) ...{
Faces applet = new Faces();
JFrame frame = new JFrame(applet.getClass().toString().substring(6));// 建立一个名字为Buttons的frame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// frame关闭方法
frame.getContentPane().add(applet);
applet.init();
applet.start();
frame.setSize(600, 300);
frame.setVisible(true);
}
}
本例演示了,按钮在不同的状态下能够显示不同的问题和图片。让按钮有了更好的动画效果