Java程序设计 第15章 创建用户界面
学习目标 掌握使用各种用户界面组件创建互交式图形用户界面 掌握为不同的事件类型创建监听器
本章涉及的GUI组件 JCheckBoxMenuItem JMenuItem JMenu Component AbstractButton JButton JCheckBox JToggleButton JRadioButton Container JEditorPane JTextComponent JTextField JPasswordField JComponent JTextArea JLabel JList JComboBox JPanel JOptionPane JScrollBar JRootPane JTabbedPane JSplitPane JLayeredPane JScrollPane JSlider JSeperator JToolbar JMenubar JPopupMenu JTooltip JFileChooser JColorChooser JTree JTable JTableHeader JInternalFrame JPrograssBar JSpinner
按钮 按钮是单击时触发动作事件的组件。Swing提供了以下按钮: 普通按钮(JButton) 切换按钮(JToggleButton) 复选按钮(JCheckBox) 单选按钮(JRadioButton)
AbstractButton AbstractButton是所有按钮的基类。包含以下属性: actionCommand : 动作命令 text : 文本 icon : 图标 pressedIcon : 当按钮按下时显示 rolloverIcon : 当鼠标在按钮上时显示 mnemonic : 按钮的快捷键,用Alt+快捷键模拟按钮按下 horizontalAlignment : 文本和图标的水平对齐方式,缺省为CENTER horizontalTextPosition : 文本相对于图标的水平位置,缺省为RIGHT verticalAlignment :文本和图标的垂直对齐方式,缺省为CENTER verticalTextPosition : 文本相对于图标的垂直位置,缺省为CENTER borderPainted : 是否绘制边框 iconTextGap : 文本和图标之间的间隔 selected : 是否被选择
JButton 构造函数 JButton() JButton(String text) JButton(String text, Icon icon) JButton(Icon icon) 图标(Icon)是固定大小的图片, 通常用于装饰组件。javax.swing.Icon是一个接口,要创建图标,使用具体类javax.swing.ImageIcon。例如: ImageIcon icon = new ImageIcon(“photo.gif”); Example:TestButtonIcons.java
水平对齐 setHorizontalAlignment(int alignment)指定文本和图标的水平对齐方式。alignment常量包括: SwingConstants.RIGHT (default) SwingConstants.LEFT SwingConstants.CENTER SwingConstants.LEADING SwingConstants.TRAILING
垂直对齐 setVerticalAlignment(int alignment)指定文本和图标的水平对齐方式。alignment常量包括: SwingConstants.CENTER (the default) SwingConstants.TOP SwingConstants.BOTTOM Example:TestButtonAlignment.java
水平文本位置 setHorizontalTextPosition(int textPosition)指定文本相对于图标的水平位置。 textPosition常量包括: SwingConstants.RIGHT (the default) SwingConstants.LEFT SwingConstants.CENTER SwingConstants.LEADING SwingConstants.TRAILING
垂直文本位置 setVerticalTextPosition(int textPosition)指定文本相对于图标的水平位置。 textPosition常量包括: SwingConstants.CENTER (the default) SwingConstants.TOP SwingConstants.BOTTOM Example:TestButtonTextPosition.java
例 使用按钮 编写程序,在面板上显示消息,并使用两个按钮向左和向右移动消息文本。 Example:ButtonDemo.java
JCheckBox 复选框用于进行多个选项的选择。 构造函数 JCheckBox() JCheckBox(String text) JCheckBox(String text, boolean selected) JCheckBox(Icon icon) JCheckBox(String text, Icon icon) JCheckBox(String text, Icon icon, boolean selected)
例 使用复选框 添加三个复选框,使用用户可以指定文本是否居中、粗体和斜体。 Example:CheckBoxDemo.java
JRadioButton 单选按钮通常用于从多个选项中选择一个。 构造函数 JRadioButton(String text) JRadioButton(String text, boolean selected) JRadioButton(Icon icon) JRadioButton(String text, Icon icon) JRadioButton(String text, Icon icon, boolean selected) JRadioButton使用ButtonGroup进行分组,一个组内同时只能有一个按钮被选中。
例 使用单选按钮 添加三个单选按钮,指定文本的颜色。 Example:RadioButtonDemo.java
JLabel 标签通常用于显示文本和图片。 构造函数 JLabel() JLabel(String text, int horizontalAlignment) JLabel(String text) JLabel(Icon icon) JLabel(Icon icon, int horizontalAlignment) JLabel(String text, Icon icon, int horizontalAlignment)
JTextField 文本域用于输入或显示单行文本。 构造函数 常用属性 JTextField() JTextField(int columns) JTextField(String text) JTextField(String text, int columns) 常用属性 text horizontalAlignment editable columns
例 使用文本域 添加文本域,使用户可以设置文本。 Example:TextFieldDemo.java
JTextArea 文本区用于输入或显示多行文本。 构造函数 常用属性 JTextArea(int rows, int columns) JTextArea(String s, int rows, int columns) 常用属性 text editable columns lineWrap wrapStyleWord rows lineCount tabSize
例 使用文本区域 在标签中显示图像、文本,在文本区中显示文本。 Example:TextAreaDemo.java
JComboBox 组合框提供一个简单的列表项,用户可以从中选择一项。 构造函数 常用属性 事件 JComboBox() JComboBox(Object[] items) 常用属性 selectedIndex selectedItem 事件 ItemEvent - ItemListener
JComboBox的方法 方法 void addItem(Object item) Object getItemAt(int index) int getItemCount () void removeItem(Object item) void removeItemAt(int index) void removeAllItems()
例 使用组合框 使用组合框选择国家,显示该国家的国旗和描述。 Example:ComboBoxDemo.java
JList 列表框提供与组合框类似的功能,但列表允许用户选择一个或多个值。 构造函数 常用属性 事件 JList() JList(Object[] items) 常用属性 selectedIndex, selectedIndices selectedValue, selectedValues selectionMode visibleRowCount 事件 ListSelectionEvent - ListSelectionListener
例 使用列表 编写程序,允许用户在列表中选择国家,并在显示选择国家的国旗。 Example:ListDemo.java
JScrollBar 滚动条用于从一个范围中选择值。 构造函数 常用属性 事件 JScrollBar() JScrollBar(int orientation) JScrollBar(int orientation, int value, int extend, int min , int max) 常用属性 orientation, visibleAmount, value, maximum, minimum, blockIncrement, unitIncrement 事件 AdjustmentEvent - AdjustmentListener
例 使用滚动条 编写程序,利用水平和垂直滚动条控制面板中文字的位置。 Example:ScrollBarDemo.java
JSlider 滑动块与滚动条类似,但提供更多的属性和显示方式。 构造函数 常见属性 事件 JSlider(int min, int max) JSlider(int min, int max, int value) JSlider(int orientation) JSlider(int orientation, int min , int max , int value) 常见属性 inverted, orientation, paintLabels, paintTicks, paintTrack majorTickSpacing, minorTickSpacing, maximum, minimum 事件 ChangeEvent - ChangeListener
例 使用滑动块 编写程序,利用水平和垂直滑动块控制面板中文字的位置。 Example:SliderDemo.java