基本控件包括:按钮组件Jbutton、复选框组件JCheckBox、下拉列表组件JComboBox、列表框组件JList、菜单组件JMenu、单选按钮组件JRadioButton、滑块组件JSlider、微调控制组件JSpinner、文本框组件JTextFeld和密码框组件JPasswordField。
按钮JButton组件应用示例。
package chapter14;
//导入javax.swing包中的相关类
import javax.swing.AbstractButton;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.ImageIcon;
import java.awt.event.KeyEvent;
/*
* ButtonDemo.java要求有以下的文件:
* images/right.gif 6
* images/middle.gif
* images/left.gif
*/
public class ButtonDemo {
protected JButton b1, b2, b3; //创建三个按钮对象b1,b2和b3
JFrame frame; //声明窗体对象
JPanel contentPane; //声明面板对象
public ButtonDemo() { //构造器
//创建并设置窗口.
frame = new JFrame("ButtonDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
contentPane = new JPanel(); //创建面板对象
frame.setContentPane(contentPane); //将面板对象contentPane设为窗体的内容面板
//创建三个图片
ImageIcon leftButtonIcon = createImageIcon("images/right.gif");
ImageIcon middleButtonIcon = createImageIcon("images/middle.gif");
ImageIcon rightButtonIcon = createImageIcon("images/left.gif");
b1 = new JButton("使中间按钮不可用", leftButtonIcon); //创建最左边显示的按钮对象
b1.setVerticalTextPosition(AbstractButton.CENTER); //设置按钮上文本相对于图标的垂直位置
b1.setHorizontalTextPosition(AbstractButton.LEADING); //设置按钮上文本相对于图标的水平位置
b1.setMnemonic(KeyEvent.VK_D); //设置按钮b1的键盘助记符为键D
b1.setActionCommand("disable"); //设置此按钮的动作命令
b2 = new JButton("中间按钮", middleButtonIcon); //创建中间显示的按钮对象
b2.setVerticalTextPosition(AbstractButton.BOTTOM); //设置按钮上文本相对于图标的垂直位置
b2.setHorizontalTextPosition(AbstractButton.CENTER); //设置按钮上文本相对于图标的水平位置
b2.setMnemonic(KeyEvent.VK_M); //设置按钮b2的键盘助记符为键D
b3 = new JButton("使中间按钮可用", rightButtonIcon); //创建右边显示的按钮对象
//使用默认的文本位置(居中)
b3.setMnemonic(KeyEvent.VK_E); //设置按钮b3的键盘助记符为键D
b3.setActionCommand("enable"); //设置此按钮的动作命令
b3.setEnabled(false); //禁用此按钮
// 设置按钮上的工具提示
b1.setToolTipText("单击这个按钮使中间按钮不可用.");
b2.setToolTipText("当单击时,这个中间按钮什么都不做.");
b3.setToolTipText("单击这个按钮使中间按钮可用.");
}
/* 返回一个ImageIcon, 或者如果文件路径无效,返回null. */
protected static ImageIcon createImageIcon(String path) {
java.net.URL imgURL = ButtonDemo.class.getResource(path); //获取要加载图像的路径
if (imgURL != null) {
return new ImageIcon(imgURL); //返回加载的图像
} else { //如果加载图像过程中出现异常
System.err.println("找不到文件: " + path); //输出相关信息
return null; //返回null
}
}
// 创建GUI界面并显示.
private void createAndShowGUI() {
//将三个按钮添加到窗体的内容面板中.
contentPane.add(b1); •7•
contentPane.add(b2);
contentPane.add(b3);
//显示窗口.
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
//为事件分发线程预订一个工作:创建并显示本程序的GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
new ButtonDemo().createAndShowGUI();
}
});
}
}