Java可以使用类库中一组被称为Swing的包来构建图形用户界面,本篇整理了Swing包种常用的组件类。
要使用Swing包,可以再代码中导入整个包:
import javax.swing.*;
要创建Swing应用程序,主方法所在的类要继承JFrame类,JFrame类中包含了用户界面上的标题栏,最小化最大化和关闭按钮等基本元素。主方法所在类要在构造函数中调用父类的构造函数,指定标题,高宽(或者使用pack()方法自适应),决定用户关闭窗口时应用程序如何响应,显示框架内容。
常用的方法包括setSize,setTitle,setVisible,setBounds,setDefaultCloseOperation等等。
可以使用下面的代码来指定Java7中新增的Nimbus外观效果:
UIManager.setLookAndFeel(
“com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel”
);
调用时使用try-catch来防止在不支持Nimbus的环境中出现异常。
下面列出了一些常用的组件及常用方法和构造函数,要将组件加入到界面中,必须将他们加入到容器中(使用add(Component)方法),然后显示容器。
JComponent:Swing中组件的超类
常用方法:setEnable(),isEnabled(),setVisible(),isVisible(),setSize(),getSize()
JPanel:面板,容器类。
构造函数:JPanel()
常用方法:add(Component)
JButton:按钮类,用于定义具有文本和图标的按钮
构造函数:JButton(String),JButton(Icon),JButton(String,Icon)
ImageIcon:图标,用于按钮、标签等其他界面元素
构造函数:ImageIcon(String)
JLabel:标签,用来包含说明性文本和图标
构造函数:JLabel(String),JLabel(String,int),JLabel(String, Icon, int)
注:int参数由SwingConstants中定义的静态变量LEFT、RIGHT、CENTER来指定其对齐方式。
常用方法:setText(String),setIcon(Icon),getText(),getIcon()
JTextComponent:JTextField和JTextArea的超类
常用方法:setEditable(boolean),isEditable(),setText(String),getText(),getSelectedText(),setFont(Font)
JTextField:单行文本框,用来处理用户输入
构造函数:JTextField(),JTextField(int),JTextField(String,int)
注:int参数指定文本框宽度,String指定默认字符串。
JPasswordField:密码框,JTextField的子类
常用方法:setEchoChar(char)
JTextArea:多行文本框
构造函数:JTextArea(int,int),JTextArea(String, int, int)
注:两个int分别指定行数和列数,String指定默认字符串。
常用方法:append(String),insert(String,int),setLineWrap(boolean),setWrapStyleWord(boolean)
注:setWrapStyleWord指定是整个单词换到下一行还是拆开单词将字符换到下一行。
JScrollPane:可滚动区域,用来定义带有滚动条的区域
构造函数:JScrollPane(Component),JScrollPane(Component,int, int)
注:Component参数为需要添加滚动条的组件,两个int参数分别定义垂直和水平方向的滚动条显示方式,显示方式由ScrollPaneConstants的静态变量VERTICAL_SCROLLBAR_ALWAYS,VERTICAL_SCROLLBAR_AS_NEEDED和VERTICAL_SCROLLBAR_NEVER定义(水平滚动条换成HORIZONTAL即可。
常用方法:setPreferredSize(Dimension)
JToggleButton:JCheckBox和JRadioButton的超类
常用方法:setSelected(boolean),isSelected()
JCheckBox:复选框
构造函数:JCheckBox(String),JCheckBox(String,boolean),JCheckBox(Icon),JCheckBox(Icon, boolean)
注:第二个参数用来指定初始情况下按钮是否被选中。
JRadioButton:单选框
构造函数:JRadioButton(String),JRadioButton(String,boolean),JRadioButton(Icon),JRadioButton(Icon, boolean)
ButtonGroup:按钮组,用来组合多个单选按钮
构造函数:ButtonGroup()
常用方法:add(Component)
JComboBox:组合框,用来提供下拉菜单
构造函数:JComboBox(),JComboBox(Object[])
注:如果列表项为文本,则Object[]参数可以提供一个String数组。
常用方法:getItemAt(int),getItemCount(),getSelectedIndex(),getSelectedItem(),setSelectedIndex(int),setSelectedIndex(Object)
JList:列表,允许用户选择一个或多个值,与下拉列表不同,列表会显示所有值
构造函数:JList(),JList(Object[]),JList(Vector)
常用方法:setListData(Object[]),setListData(Vector),setVisibleRowCount(int),getSelectedValuesList()
JOptionPane:用来创建标准对话框
· 创建确认对话框:showConfirmDialog(Component, Object)
注:Conponent参数指出了包含对话框的容器,如果为null或者不是JFrame对象,则显示在屏幕中央。第二个参数可以使字符串,组件或者Icon,定义了对话框中的主要内容。
重载方法:showConfirmDialog(Component,Object, String, int, int)
注:String定义了标题栏中的字符串,后面的int参数为JOptionPane类中定义的常量YES_NO_CANCEL_OPTION或者YES_NO_OPTION,用来指出显示哪些按钮,最后一个参数为ERROR_MESSAGE、INFORMATION_MESSAGE、PLAIN_MESSAGE、QUESTION_MESSAGE或者WARNING_MESSAGE,决定了消息类型。
· 创建输入对话框:showInputDialog(Component, Object)
注:方法参数和前面的showConfirmDialog方法相同。
方法重载:showInputDialog(Conponent,Object, String, int)
注:String参数为标题栏上的文本,最后的int值为消息类型(见上文)。
· 创建消息对话框:showMessageDialog(Component, Object)
重载方法:showMessageDialog(Component,Object, String, int)
注:方法参数和前面相同。
· 创建选项对话框:showOptionDialog(Component, Object, String, int,int, Icon, Object[], Object)
注:前两个参数与前面相同,第三个String参数为标题文本,第四个int参数为YES_NO_CANCEL_OPTION或者YES_NO_OPTION(如果要使用其他选项,则这个参数传入0),第五个int参数为消息类型(如果要使用其他选项,则这个参数传入0),第六个Icon参数用来指定第五个参数的默认图标,Object[]参数用来指定对话框的选项组件和其他对象(当第四个参数不为YES_NO_CANCEL_OPTION或者YES_NO_OPTION时),最后一个参数用来指定第四个参数不为YES_NO_CANCEL_OPTION或者YES_NO_OPTION时对话框的默认选项。
JSlider:滑块,用来通过滑动设置输入值
构造函数:JSlider(int),JSlider(int,int),JSlider(int, int, int),JSlider(int, int, int, int)
注:第一个构造函数int参数用来指定滑块方向,使用SwingConstants中定义的HORIZONTAL或VERTICAL常量来指定,滑块的最小值、最大值以及初始值默认分别为0、100、50。第二个构造函数的两个int参数指定滑块的最小值和最大值,方向默认为水平。第三个构造函数指定滑块的最小值,最大值以及初始值。第四个构造函数指定滑块的方向、最小值、最大值以及初始值。
常用方法:setMajorTickSpacing(int),setMinorTickSpacing(int),setPaintTicks(boolean),setPaintLabels(boolean)
JToolBar:工具栏容器,用来将多个组件组织为一行或一列
构造函数:JToolBar(),JToolBar(int)
注:int参数为HORIZONTAL或VERTICAL,用来指定工具栏方向(默认是水平方向)。
JProgressBar:进度条,用于显示进度
构造函数:JProgressBar(),JProgressBar(int,int),JProgressBar(int, int, int)
注:第二个构造函数指定进度条的最小值和最大值,第三个指定方向(HORIZONTAL或VERTICAL)和最小值最大值。
常用方法:setMinimum(int),setMaximum(int),setValue(int)
JMenuBar:用于包含菜单栏的容器
构造函数:JMenuBar()
常用方法:add(JMenu)
JMenu:菜单栏的一个下拉菜单
构造函数:JMenu(String)
常用方法:add(JMenuItem),add(Component),addSeparator(),add(String)
JMenuItem:下拉菜单中的一个项
构造函数:JMenuItem(String),JMenuItem(Icon),JMenuItem(String,Icon)
JTabbedPane:选项卡,用来定义堆叠在一起的一组面板
构造函数:JTabbedPane(),JTabbedPane(int),JTabbedPane(int,int)
注:第二个构造函数的int参数用来指定布局,可以使用JTabbedPane中顶一个TOP、BOTTOM、LEFT或RIGHT常量来指定标签的显示位置。第三个构造函数第一个为布局参数,第二个滚动策略(即当界面无法容纳全部标签时的策略),可以使用WRAP_TAB_LAYOUT来设置不滚动的选项卡窗格来显示多余的标签,或者使用SCROLL_TAB_LAYOUT来设置使用滚动箭头。
常用方法:addTab(String,Component)