4.Swing常用组件

发布时间:2024年01月19日

4. Swing常用组件

Swing 是 Java 的图形用户界面 (GUI) 架构,它提供了一系列的组件,用于构建交互式的桌面应用程序。

4.1 面板组件

面板组件可以说是 Swing 中最常用的容器类组件之一,它被用于组织和布局其他组件。

JPanel 是 Swing 中的一个容器类,它继承自JComponent类。JPanel 可以包含其他的 Swing 组件,如按钮、标签、文本框等,用于创建复杂的用户界面布局。

面板组件的主要作用是提供一个可见的区域,用于容纳其他组件,并定义布局规则。在创建 JPanel 对象时可以选择不同的布局管理器来对其中的组件进行自动布局,如 FlowLayout、BorderLayout、GridLayout 等。

通过使用面板组件,可以实现灵活的用户界面布局。可以将多个面板组件嵌套在一起,形成层次化的布局,实现更加复杂和多样化的界面。

4.1.1 JPanel

JPanel 是 Java Swing 中常用的容器类组件之一,它继承自 JComponent 类。JPanel 可以包含其他的 Swing 组件,如按钮、标签、文本框等,用于创建复杂的用户界面布局。

面板组件的主要作用是提供一个可见的区域,用于容纳其他组件,并定义布局规则。

4.1.1.1 构造方法
构造方法描述
JPanel()创建一个新的JPanel对象,并使用Flow布局。
JPanel(LayoutManager layout)创建一个新的JPanel对象,并使用指定的布局管理器。
JPanel(LayoutManager layout, boolean isDoubleBuffered)创建一个新的JPanel对象,并使用指定的布局管理器和双缓冲设置。
JPanel(boolean isDoubleBuffered)创建一个新的JPanel对象,并使用Flow布局以及指定的双缓冲设置。
4.1.1.2 常用方法
方法描述
add(Component comp)将指定的组件添加到此面板上。
validate()验证此面板及其所有子组件。
repaint()使此面板无效,并请求重新绘制。
setLayout(LayoutManager manager)设置此面板的布局管理器。
setBackground(Color bg)设置此面板的背景颜色。
setPreferredSize(Dimension preferredSize)设置此面板的首选大小。
setBorder(Border border)设置此面板的边框。
setOpaque(boolean isOpaque)设置此面板是否是不透明。
remove(Component comp)从面板中移除指定的组件。
getComponents()返回此面板中包含的所有组件。
getLayout()返回此面板的布局管理器。
getBackground()返回此面板的背景颜色。
getPreferredSize()返回此面板的首选大小。
getBorder()返回此面板的边框。
isOpaque()返回此面板是否是不透明的。

4.1.2 JScrollPane

JScrollPane 是一个在 Java Swing GUI 应用程序中用于实现滚动功能的容器组件。它允许用户在内容超过可视区域大小时滚动查看。

JScrollPane 的主要特点

  1. 内容视图:JScrollPane 可以容纳一个或多个其他组件,作为内容视图。这些组件通常可以是任意的 Swing 组件,比如 JPanel、JTextArea 等等。

  2. 滚动条:JScrollPane 提供垂直和水平滚动条,使用户能够在内容超过可视区域时进行滚动。当内容不足以填充可视区域时,滚动条将自动隐藏。

  3. 自动调整尺寸:JScrollPane 具有自动调整尺寸的能力,以根据内容的变化自动调整滚动条的位置和大小。

  4. 嵌套布局:JScrollPane 可以嵌套在其他容器中,并且可以使用各种布局管理器来控制其布局。

使用 JScrollPane 的基本步骤如下:

  1. 创建一个容器组件,并将其作为内容视图,例如:JPanel panel = new JPanel();

  2. 将内容视图加入到 JScrollPane 中,例如:JScrollPane scrollPane = new JScrollPane(panel);

  3. 将 JScrollPane 加入到容器中,在需要滚动功能的位置上放置 JScrollPane,例如:frame.add(scrollPane);

  4. 根据需要设置 JScrollPane 的其他属性,例如:scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

4.1.2.1 构造方法
构造方法说明示例
JScrollPane()使用默认的视口和滚动条创建 JScrollPane。JScrollPane scrollPane = new JScrollPane();
JScrollPane(Component view)使用指定的视口和滚动条创建 JScrollPane,并将指定的组件视图设置为内容视图。JPanel panel = new JPanel();
JScrollPane scrollPane = new JScrollPane(panel);
JScrollPane(int vsbPolicy, int hsbPolicy)使用指定的视口策略和滚动条策略创建 JScrollPane。JScrollPane scrollPane = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
JScrollPane(Component view, int vsbPolicy, int hsbPolicy)使用指定的视口策略和滚动条策略创建 JScrollPane,并将指定的组件视图设置为内容视图。JPanel panel = new JPanel();
JScrollPane scrollPane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
JScrollPane(int vsbPolicy, int hsbPolicy, boolean wheelScrollingEnabled)使用指定的视口策略、滚动条策略和滚轮滚动启用设置创建 JScrollPane。JScrollPane scrollPane = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED, true);

例:

  1. 使用默认构造方法创建 JScrollPane:
JScrollPane scrollPane = new JScrollPane();
  1. 使用指定的组件视图创建 JScrollPane:
JPanel panel = new JPanel();
JScrollPane scrollPane = new JScrollPane(panel);
  1. 使用指定的视口策略和滚动条策略创建 JScrollPane:
JScrollPane scrollPane = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
  1. 使用指定的组件视图、视口策略和滚动条策略创建 JScrollPane:
JPanel panel = new JPanel();
JScrollPane scrollPane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
  1. 使用指定的视口策略、滚动条策略和滚轮滚动启用设置创建 JScrollPane:
JScrollPane scrollPane = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED, true);
4.1.2.2 常用方法
方法描述
getHorizontalScrollBar()返回水平滚动条。
getHorizontalScrollBarPolicy()返回水平滚动条的显示策略。
getVerticalScrollBar()返回垂直滚动条。
getVerticalScrollBarPolicy()返回垂直滚动条的显示策略。
setHorizontalScrollBarPolicy(int policy)设置水平滚动条的显示策略。
setVerticalScrollBarPolicy(int policy)设置垂直滚动条的显示策略。
setViewportView(Component view)设置视口内的组件。如果组件是JTable或JTree,并且设置了自动滚动到指定行的策略,则滚动视图以使指定的行可见。
getViewport()返回视口(可见区域)。
setViewport(JViewport viewport)设置视口(可见区域)。
setViewportBorder(Border viewportBorder)设置视口边框。
getViewportBorder()返回视口边框。
setViewportBorderInsets(Insets insets)设置视口边框的内边距。
getViewportBorderInsets()返回视口边框的内边距。
setColumnHeaderView(Component view)设置列头视图组件。
getColumnHeader()返回列头视图。
setRowHeaderView(Component view)设置行头视图组件。
getRowHeader()返回行头视图。
setCorner(String key, Component corner)设置指定角的组件。
getCorner(String key)返回指定角的组件。
getViewportSize()返回视口的大小。
setScrollMode(int scrollMode)设置滚动模式。
getScrollMode()返回滚动模式。
getAccessibleContext()返回JScrollPane的辅助功能上下文。

4.2 文本组件

文本组件是指在软件或网页设计中用于显示文本内容的组件。它是用户界面设计中常见的一种元素,用于展示静态或动态的文本信息。

文本组件都有一个共同的父类JTextComponent,JTextComponent是一个抽象类。

文本组件通常具有以下特点和功能:

  1. 显示文本内容:文本组件主要用于显示文本信息,可以展示短句、段落或长篇文章等。用户可以通过阅读文本内容来获取所需的信息。

  2. 格式化文字:文本组件通常支持对文本进行格式化,使得文本具有不同的字体、字号、颜色、对齐方式等样式。这可以通过使用富文本或HTML标记语言来实现。

  3. 多语言支持:文本组件可以显示多种语言的文本,能够适应不同用户的语言需求。

  4. 文本链接:有些文本组件支持将文本内容转变为链接,用户可以点击链接以实现跳转或执行特定的操作。

  5. 文本编辑:在某些情况下,文本组件可以允许用户编辑文本内容,例如在输入框中输入文本或通过富文本编辑器进行编辑。

  6. 自适应大小:文本组件通常具有自适应大小的特性,这意味着它可以根据文本内容的长度和字体样式自动调整大小,以确保所有文本内容都可以正确显示出来。

  7. 滚动条:如果文本内容超出文本组件的显示区域,一些文本组件还可以提供滚动条功能,使用户能够滚动查看全部内容。

4.2.1 JTextField

JTextField是Java Swing库中的一个文本输入组件,用于接收用户的文本输入。它是一个单行的文本框,用户可以通过键盘输入文字。

4.2.1.1 构造方法
构造方法描述
JTextField()创建一个新的空JTextField,默认列数为0。
JTextField(int columns)创建一个新的JTextField,指定列数。
JTextField(String text)创建一个新的JTextField,并显示指定的初始文本。
JTextField(String text, int columns)创建一个新的JTextField,显示指定的初始文本并指定列数。
JTextField(Document doc, String text, int columns)使用指定的文档、初始文本和列数创建一个新的JTextField。
JTextField(int columns, Document doc, String text, int column)使用指定的文档、初始文本、列数和列位置创建一个新的JTextField。
4.2.1.2 常见方法
方法描述
void setText(String text)设置文本框的文本内容。
String getText()获取文本框的文本内容。
void setEditable(boolean editable)设置文本框是否可编辑。
void setColumns(int columns)设置文本框的列数。
void setHorizontalAlignment(int alignment)设置文本框中文本的水平对齐方式。可用的对齐方式有:SwingConstants.LEFT、SwingConstants.CENTER和SwingConstants.RIGHT。
void setFont(Font font)设置文本框中文本的字体样式。
void setForeground(Color fg)设置文本框中文本的前景色,即文本的颜色。
void setBackground(Color bg)设置文本框的背景色。
void setCaretPosition(int position)设置文本框里的光标位置。
int getCaretPosition()获取文本框中当前光标的位置。
void setSelectionStart(int selectionStart)设置文本框中选定文本的起始位置。
int getSelectionStart()获取文本框中选定文本的起始位置。
void setSelectionEnd(int selectionEnd)设置文本框中选定文本的结束位置。
int getSelectionEnd()获取文本框中选定文本的结束位置。
void selectAll()选择文本框中的所有文本。
void setToolTipText(String text)设置文本框的工具提示文本。
void requestFocus()请求文本框获得焦点。
void addActionListener(ActionListener l)添加一个ActionListener用于监听文本框的回车事件。
void removeActionListener(ActionListener l)移除指定的ActionListener。
Dimension getPreferredSize()获取文本框的首选尺寸。

4.2.2 JTextArea

JTextArea是Swing库中的一个文本区域组件,用于显示和编辑多行文本。

4.2.2.1 构造方法
构造方法描述
JTextArea()创建一个默认的JTextArea对象,无文本内容,无行数和列数限制。
JTextArea(String text)创建一个JTextArea对象,并设置初始文本内容。
JTextArea(int rows, int columns)创建一个指定行数和列数的JTextArea对象,并指定空文本容器的尺寸。
JTextArea(String text, int rows, int columns)创建一个指定初始文本内容、行数和列数的JTextArea对象,并指定文本容器的尺寸。
JTextArea(Document doc)创建一个使用指定文档的JTextArea对象。
JTextArea(Document doc, String text, int rows, int columns)创建一个使用指定文档、初始文本内容、行数和列数的JTextArea对象,并指定文本容器的尺寸。
4.2.2.2 常见方法
方法描述
void setText(String text)设置JTextArea的文本内容。
String getText()获取JTextArea的文本内容。
void setFont(Font font)设置JTextArea的字体。
void setForeground(Color color)设置JTextArea的前景色(文本颜色)。
void setBackground(Color color)设置JTextArea的背景色。
void setEditable(boolean editable)设置JTextArea是否可编辑。
void setLineWrap(boolean wrap)设置JTextArea是否自动换行。
void setWrapStyleWord(boolean word)设置JTextArea是否在单词边界处换行(只在setLineWrap(true)时生效)。
void append(String text)在原有文本的末尾追加新的文本内容。
void insert(String text, int position)在指定位置插入新的文本内容。
void replaceRange(String text, int start, int end)替换指定范围内的文本内容。
void setRows(int rows)设置JTextArea的行数。
void setColumns(int columns)设置JTextArea的列数。
void setCaretPosition(int position)设置文本插入符的位置。
void setSelectionStart(int start)设置选中文本的起始位置。
void setSelectionEnd(int end)设置选中文本的结束位置。
void select(int start, int end)选中指定范围内的文本。
void selectAll()选中所有文本。
void cut()剪切选中的文本到剪贴板。
void copy()复制选中的文本到剪贴板。
void paste()将剪贴板中的内容粘贴到文本区域中。
void insertComponent(Component comp)在文本区域中插入一个组件。

4.3 标签组件

标签组件是一种常见的UI组件,用于给内容或元素添加分类、标记或特定信息。它通常以短文本的形式显示,并且可以与其他文本或图标结合使用。

标签组件的特点:

  1. 显示方式:标签通常以独立的形式显示,可以放置在文本、按钮、图像等其他元素的附近。
  2. 文本内容:标签的文本通常是短而简洁的,用于描述或分类相应的内容。例如,常见的标签可以是"新"、“重要”、"热门"等。
  3. 可点击性:有些标签可以被点击,以便执行相关操作或导航到特定的页面。
  4. 样式和颜色:标签通常使用颜色、背景、边框等来进行视觉上的突出显示,以区分不同的标签或者表示特定的状态。

4.3.1 JLabel

JLabel 是 Java Swing 库中的一个组件,用于在用户界面中显示文本或图像。它是一个简单的标签控件,通常用于显示静态文本或图像,并不具备用户交互功能。

4.3.1.1 构造方法
构造方法描述
JLabel()创建一个空的标签组件
JLabel(String text)创建一个带有指定文本的标签组件
JLabel(String text, int horizontalAlignment)创建一个带有指定文本和水平对齐方式的标签组件
JLabel(Icon image)创建一个带有指定图像的标签组件
JLabel(Icon image, int horizontalAlignment)创建一个带有指定图像和水平对齐方式的标签组件
JLabel(String text, Icon image, int horizontalAlignment)创建一个带有指定文本、图像和水平对齐方式的标签组件
JLabel(String text, Icon image, int horizontalAlignment, int verticalAlignment)创建一个带有指定文本、图像、水平对齐方式和垂直对齐方式的标签组件
4.3.1.2 常见方法
方法描述
void setText(String text)设置标签的文本内容
String getText()获取标签的文本内容
void setIcon(Icon icon)设置标签显示的图标
Icon getIcon()获取标签显示的图标
void setHorizontalAlignment(int alignment)设置标签文本的水平对齐方式
int getHorizontalAlignment()获取标签文本的水平对齐方式
void setVerticalAlignment(int alignment)设置标签文本的垂直对齐方式
int getVerticalAlignment()获取标签文本的垂直对齐方式
void setFont(Font font)设置标签的字体
Font getFont()获取标签的字体
void setForeground(Color fg)设置标签前景色(文本颜色)
Color getForeground()获取标签前景色(文本颜色)
void setBackground(Color bg)设置标签背景色
Color getBackground()获取标签背景色
void setOpaque(boolean isOpaque)设置标签是否为不透明,影响背景绘制
boolean isOpaque()检查标签是否为不透明
void setEnabled(boolean enabled)设置标签是否可用(是否响应交互)
boolean isEnabled()检查标签是否可用
void setToolTipText(String text)设置标签的工具提示文本
String getToolTipText()获取标签的工具提示文本
void setIconTextGap(int iconTextGap)设置标签图标与文本之间的间距
int getIconTextGap()获取标签图标与文本之间的间距
void setHorizontalAlignment(int alignment)设置标签文本的水平对齐方式
int getHorizontalAlignment()获取标签文本的水平对齐方式
void setVerticalAlignment(int alignment)设置标签文本的垂直对齐方式
int getVerticalAlignment()获取标签文本的垂直对齐方式
void setBorder(Border border)设置标签的边框
Border getBorder()获取标签的边框
void addMouseListener(MouseListener listener)添加一个鼠标事件的监听器到标签上
void removeMouseListener(MouseListener listener)从标签上移除指定的鼠标事件监听器

4.4 按钮组件

按钮组件是一种常见的用户界面元素,用于触发特定的操作或交互。它通常以可点击的形式呈现,用户点击按钮后会触发相应的事件或执行特定的操作。

Swing常见的按钮组件JButton、JCheckBox、JRadioButton等,都是抽象类AbstractButton类的直接或间接子类。

按钮组件的特点:

  1. 视觉表现:按钮通常具有与其他元素不同的外观,以便在界面中显眼地展示。它可以具有不同的形状、大小、颜色、样式和图标等,以适应设计风格和用户体验需求。

  2. 交互行为:按钮被点击时,会触发相应的交互行为。这可能包括提交表单、打开链接、执行特定操作、显示对话框或弹窗等。按钮通常具有明确的目的,用户点击按钮时会明确地指示他们的意图。

  3. 状态反馈:按钮可以在不同的状态下展示,以提供反馈给用户。例如,按钮可以处于激活(可点击)或禁用(不可点击)状态,以反映当前的应用程序状态或用户的权限。禁用状态的按钮通常以灰色或不可操作的外观表示。

  4. 按钮类型:按钮组件可以根据其用途分为多种类型。例如,可提交表单的提交按钮、重置表单的重置按钮、返回上一页的返回按钮、触发菜单的菜单按钮等。这些不同类型的按钮具有不同的外观和交互行为。

4.4.1 JCheckBox

JCheckBox 是 Java Swing 库中提供的一个复选框组件,用于在图形用户界面中显示可选或选中的选项。

4.4.1.1 构造方法
构造方法说明
JCheckBox()创建一个默认未选中的 JCheckBox,无标签。
JCheckBox(Icon icon)创建一个默认未选中的 JCheckBox,并使用指定的图标作为选项的图标。
JCheckBox(Icon icon, boolean selected)创建一个指定选中状态的 JCheckBox,并使用指定的图标作为选项的图标。
JCheckBox(String text)创建一个默认未选中的 JCheckBox,并使用指定的文本作为选项的标签。
JCheckBox(String text, boolean selected)创建一个指定选中状态的 JCheckBox,并使用指定的文本作为选项的标签。
JCheckBox(String text, Icon icon)创建一个默认未选中的 JCheckBox,并使用指定的文本和图标作为选项的标签和图标。
JCheckBox(String text, Icon icon, boolean selected)创建一个指定选中状态的 JCheckBox,并使用指定的文本和图标作为选项的标签和图标。
4.4.1.2 常见方法
方法说明
void setSelected(boolean selected)设置 JCheckBox 的选中状态。
boolean isSelected()返回 JCheckBox 的选中状态。
void setText(String text)设置 JCheckBox 的标签文本。
String getText()返回 JCheckBox 的标签文本。
void setIcon(Icon icon)设置 JCheckBox 的图标。
Icon getIcon()返回 JCheckBox 的图标。
void setEnabled(boolean enabled)设置 JCheckBox 是否可用(启用/禁用)。
boolean isEnabled()返回 JCheckBox 是否可用。
void addItemListener(ItemListener listener)添加一个 ItemListener 以监听 JCheckBox 的选中状态变化事件。
void removeItemListener(ItemListener listener)移除指定的 ItemListener,停止监听 JCheckBox 的选中状态变化事件。
void addActionListener(ActionListener listener)添加一个 ActionListener 以监听 JCheckBox 的点击事件。
void removeActionListener(ActionListener listener)移除指定的 ActionListener,停止监听 JCheckBox 的点击事件。
void setHorizontalAlignment(int alignment)设置 JCheckBox 的标签水平对齐方式。
int getHorizontalAlignment()返回 JCheckBox 的标签水平对齐方式。
void setVerticalAlignment(int alignment)设置 JCheckBox 的标签垂直对齐方式。
int getVerticalAlignment()返回 JCheckBox 的标签垂直对齐方式。
void setBorderPaintedFlat(boolean flat)设置 JCheckBox 是否以扁平化的边框样式显示。
boolean isBorderPaintedFlat()返回 JCheckBox 是否以扁平化的边框样式显示。

4.4.2 JRadioButton

JRadioButton是Java Swing提供的单选按钮组件。它是javax.swing.JRadioButton类的子类,在用户界面中允许用户从一组互斥的选项中选择一个。

4.4.2.1 构造方法
构造方法描述
JRadioButton()创建一个未指定文本的JRadioButton组件。
JRadioButton(Icon icon)创建一个带有指定图标的JRadioButton组件。
JRadioButton(Icon icon, boolean selected)创建一个带有指定图标和选择状态的JRadioButton组件。
JRadioButton(String text)创建一个带有指定文本的JRadioButton组件。
JRadioButton(String text, boolean selected)创建一个带有指定文本和选择状态的JRadioButton组件。
JRadioButton(String text, Icon icon)创建一个带有指定文本和图标的JRadioButton组件。
JRadioButton(String text, Icon icon, boolean selected)创建一个带有指定文本、图标和选择状态的JRadioButton组件。
JRadioButton(Action a)创建一个由指定动作定义的JRadioButton组件。可以在动作中指定文本、图标和选择状态。
JRadioButton(String text, Icon icon, boolean selected, ActionListener listener)创建一个带有指定文本、图标、选择状态和ActionListener的JRadioButton组件。
JRadioButton(String text, boolean selected, ActionListener listener)创建一个带有指定文本、选择状态和ActionListener的JRadioButton组件。
4.4.2.2 常见方法
方法描述
void setActionCommand(String command)设置与JRadioButton关联的动作命令。
void addActionListener(ActionListener listener)向JRadioButton添加一个ActionListener,用于处理选择事件。
void setEnabled(boolean enabled)设置JRadioButton是否可用。
void setSelected(boolean selected)设置JRadioButton的选择状态。
boolean isSelected()检查JRadioButton是否被选中。
void setText(String text)设置JRadioButton的文本。
void setIcon(Icon icon)设置JRadioButton的图标。
void setHorizontalAlignment(int alignment)设置JRadioButton文本的水平对齐方式。
void setVerticalAlignment(int alignment)设置JRadioButton文本的垂直对齐方式。
void setIconTextGap(int gap)设置JRadioButton图标和文本之间的间距。
void setBorder(Border border)设置JRadioButton的边框。
void setComponentOrientation(ComponentOrientation orientation)设置JRadioButton的组件定位方向。
void setFont(Font font)设置JRadioButton的字体。
void setForeground(Color fg)设置JRadioButton的前景色。
void setBackground(Color bg)设置JRadioButton的背景色。
void setOpaque(boolean isOpaque)设置JRadioButton是否不透明。
Dimension getPreferredSize()获取JRadioButton的首选大小。
Dimension getMinimumSize()获取JRadioButton的最小大小。
Dimension getMaximumSize()获取JRadioButton的最大大小。

4.5 下拉框组件

下拉框(ComboBox)是一种常见的用户界面组件,它通常用于提供用户选择的选项列表。下拉框组件结合了文本框和列表框的功能,用户可以通过点击下拉按钮选择列表中的选项,也可以手动输入文本。

JComboBox组件称为下拉框或者组合框,它将所有选项折叠在一起,默认显示的是第一个添加的选项。当用户点击下拉框时,会出现下拉式的选择列表,用户可以从中选择其中一项并显示。

JComboBox下拉框组件分为可编辑和不可编辑两种形式,对于不可编辑的下拉框,用户只能选择现有的选项列表。对于可编辑的下拉框,用户既可以选择现有的选项列表,也可多输入新的内容。需要注意的是,用户输入的内容只能当做当前项显示,并不会添加到下拉框的选项列表中。

在Java中,使用Swing库可以创建下拉框组件。常用的Swing下拉框组件是JComboBox类,它继承自JComponent类。

4.5.1 构造方法

构造方法:

构造方法描述
JComboBox()创建一个空的下拉框对象。
JComboBox(Object[] items)创建一个包含指定选项的下拉框对象。
JComboBox(Vector<?> items)创建一个包含指定选项的下拉框对象。
JComboBox(ComboBoxModel aModel)创建一个使用指定数据模型的下拉框对象。
JComboBox(E[] items)创建一个包含指定选项的下拉框对象,并使用泛型指定选项的类型。
JComboBox(Vector items)创建一个包含指定选项的下拉框对象,并使用泛型指定选项的类型。
JComboBox(ComboBoxModel aModel)创建一个使用指定数据模型的下拉框对象,并使用泛型指定选项的类型。
JComboBox(DefaultComboBoxModel aModel)创建一个使用指定默认数据模型的下拉框对象,并使用泛型指定选项的类型。
JComboBox(E[] items, boolean editable)创建一个包含指定选项的下拉框对象,并指定是否可编辑,默认为不可编辑。
JComboBox(Vector items, boolean editable)创建一个包含指定选项的下拉框对象,并指定是否可编辑,默认为不可编辑。
JComboBox(ComboBoxModel aModel, boolean editable)创建一个使用指定数据模型的下拉框对象,并指定是否可编辑,默认为不可编辑。
JComboBox(DefaultComboBoxModel aModel, boolean editable)创建一个使用指定默认数据模型的下拉框对象,并指定是否可编辑,默认为不可编辑。

4.5.2 常见方法

常见方法:

方法签名描述
void addItem(Object item)向下拉框中添加一个选项。
void insertItemAt(Object item, int index)在指定位置插入一个选项。
void removeItem(Object item)从下拉框中移除一个选项。
void removeItemAt(int index)根据索引从下拉框中移除一个选项。
void removeAllItems()移除下拉框中的所有选项。
void setSelectedItem(Object anObject)设置下拉框的选中项。
Object getSelectedItem()返回当前选中的下拉框选项。
int getItemCount()返回下拉框中的选项数量。
Object getItemAt(int index)返回指定索引处的下拉框选项。
int getSelectedIndex()返回当前选中项的索引,如果没有选项被选中则返回-1。
void setEditable(boolean aFlag)设置下拉框是否可编辑。
void setModel(ComboBoxModel aModel)设置下拉框使用的数据模型。
ComboBoxModel getModel()返回下拉框使用的数据模型。
void addActionListener(ActionListener l)向下拉框添加一个动作监听器。
void removeActionListener(ActionListener l)从下拉框中移除一个动作监听器。
void addItemListener(ItemListener l)向下拉框添加一个项目监听器。
void removeItemListener(ItemListener l)从下拉框中移除一个项目监听器。
void addPopupMenuListener(PopupMenuListener l)向下拉框添加一个弹出菜单监听器。
void removePopupMenuListener(PopupMenuListener l)从下拉框中移除一个弹出菜单监听器。

4.5.3 下拉式菜单

下拉式菜单是一种常见的用户界面元素,通常用于提供一系列选项供用户选择。它通常以列表形式显示在屏幕上,当用户点击或悬停在菜单上时,会展开显示选项列表。

Java提供了3个组件用于创建下拉式菜单:JMenuBar(菜单栏)、JMenu(菜单)、JMenuItem(菜单项)

4.5.3.1 JMenuBar

JMenuBar是Java Swing库中的一个类,用于创建菜单栏。菜单栏通常位于窗口的顶部,用于提供一系列菜单供用户选择。

4.5.3.1.1 构造方法
构造方法描述
JMenuBar()创建一个新的JMenuBar对象。
4.5.1.1.2 常见方法
方法签名描述
void add(JMenu menu)向菜单栏中添加一个JMenu对象。
void remove(JMenu menu)从菜单栏中移除指定的JMenu对象。
int getMenuCount()返回菜单栏中菜单的数量。
JMenu getMenu(int index)返回指定索引位置的JMenu对象。
JMenu getMenu(String name)返回具有指定名称的JMenu对象。
JMenuBar getSubElements()返回菜单栏中所有的子元素,包括菜单和分隔符。
void setHelpMenu(JMenu menu)设置菜单栏中的帮助菜单。
void setLayout(LayoutManager layout)设置菜单栏的布局管理器。
void updateUI()更新菜单栏的外观。
Dimension getPreferredSize()获取菜单栏的首选大小。
void revalidate()重新验证菜单栏及其子组件。
void paint(Graphics g)绘制菜单栏及其子组件。
void setPopupMenuVisible(boolean b)设置菜单栏的弹出菜单是否可见。
void setSelectionModel(SingleSelectionModel model)设置菜单的选择模型。
void setUI(MenuBarUI ui)设置菜单栏的UI(用户界面)对象。
MenuBarUI getUI()返回菜单栏的UI(用户界面)对象。
String getUIClassID()返回菜单栏的UI类ID。
4.5.3.2 JMenu

JMenu是Java Swing库中的一个组件,它表示一个菜单。菜单是由一系列菜单项(JMenuItem)组成的,可以在菜单中添加子菜单(JMenu)。

4.5.3.2.1 构造方法
构造方法签名描述
JMenu()创建一个新的JMenu对象。
JMenu(Action a)使用指定的操作创建一个新的JMenu对象。
JMenu(String s)使用指定的文本创建一个新的JMenu对象。
JMenu(String s, boolean isTopLevelMenu)使用指定的文本和顶级菜单标志创建一个新的JMenu对象。
4.5.3.2.2 常见方法
方法签名描述
void add(Component comp)添加一个组件到菜单中。
void add(Action a)添加一个操作到菜单中。
void add(JMenuItem menuItem)添加一个菜单项到菜单中。
void add(String s)添加一个以指定文本为标题的菜单项到菜单中。
void addSeparator()在菜单中添加一个分隔线。
JMenuItem getItem(int index)返回指定索引处的菜单项。
int getItemCount()返回菜单项的数量。
JMenu getMenu(int index)返回指定索引处的子菜单。
int getMenuCount()返回子菜单的数量。
void insert(Component comp, int index)在指定索引位置插入一个组件到菜单中。
void insert(Action a, int index)在指定索引位置插入一个操作到菜单中。
void insert(JMenuItem menuItem, int index)在指定索引位置插入一个菜单项到菜单中。
void insert(String s, int index)在指定索引位置插入一个以指定文本为标题的菜单项到菜单中。
boolean isTearOff()如果菜单是可撤离的(tear off),返回true;否则返回false。
void remove(int pos)从菜单中移除指定位置处的菜单项或子菜单。
void remove(Component comp)从菜单中移除指定组件。
void remove(JMenuItem item)从菜单中移除指定的菜单项。
void removeAll()从菜单中移除所有菜单项和子菜单。
void setPopupMenuVisible(boolean b)设置弹出菜单是否可见。
void setTearOff(boolean tearOff)设置菜单是否可撤离(tear off)。
void updateUI()更新菜单的外观和UI组件树。
4.5.3.3 JMenuItem

JMenuItem是Java Swing库中的一个类,用于创建菜单中的一个选项。它允许用户在菜单上选择一个选项,并执行相应的操作。

4.5.3.3.1 构造方法
构造方法描述
JMenuItem()创建一个没有文本和图标的菜单项。
JMenuItem(String text)创建一个具有指定文本的菜单项。
JMenuItem(Action a)创建一个具有指定操作的菜单项。
JMenuItem(Icon icon)创建一个具有指定图标的菜单项。
JMenuItem(String text, Icon icon)创建一个具有指定文本和图标的菜单项。
JMenuItem(String text, int mnemonic)创建一个具有指定文本和助记符的菜单项。
JMenuItem(String text, char mnemonic)创建一个具有指定文本和助记符的菜单项。
JMenuItem(String text, int mnemonic, Icon icon)创建一个具有指定文本、助记符和图标的菜单项。
JMenuItem(String text, char mnemonic, Icon icon)创建一个具有指定文本、助记符和图标的菜单项。
JMenuItem(String text, int mnemonic, KeyStroke accelerator)创建一个具有指定文本、助记符和快捷键的菜单项。
JMenuItem(String text, char mnemonic, KeyStroke accelerator)创建一个具有指定文本、助记符和快捷键的菜单项。
4.5.3.3.2 常见方法
方法描述
setText(String text)设置菜单项显示的文本。
getText()获取菜单项显示的文本。
setIcon(Icon icon)设置菜单项显示的图标。
getIcon()获取菜单项显示的图标。
setEnabled(boolean enabled)设置菜单项是否可用。
isEnabled()判断菜单项是否可用。
addActionListener(ActionListener listener)为菜单项添加点击事件监听器。
removeActionListener(ActionListener listener)移除菜单项的点击事件监听器。
setAccelerator(KeyStroke keyStroke)设置菜单项的快捷键。
getMenu()获取菜单项所属的菜单。
isArmed()判断菜单项是否被按下。
doClick(int pressTime)模拟点击菜单项。
setMnemonic(int mnemonic)设置菜单项的助记符。
getMnemonic()获取菜单项的助记符。
setToolTipText(String text)设置菜单项的工具提示文本。
getToolTipText()获取菜单项的工具提示文本。
setActionCommand(String command)设置菜单项的操作命令。
getActionCommand()获取菜单项的操作命令。
setSelected(boolean b)设置菜单项的选中状态。
isSelected()判断菜单项是否被选中。
setArmed(boolean b)设置菜单项的按下状态。
isPopup() 判断菜单项是否属于弹出式菜单。
fireActionPerformed(ActionEvent event)触发菜单项的点击事件。
fireMenuDragMouseEntered(MenuDragMouseEvent event)触发菜单项的拖拽鼠标进入事件。
fireMenuDragMouseExited(MenuDragMouseEvent event)触发菜单项的拖拽鼠标退出事件。
fireMenuDragMouseReleased(MenuDragMouseEvent event)触发菜单项的拖拽鼠标释放事件。
fireMenuKeyPressed(KeyEvent event)触发菜单项的按键按下事件。
fireMenuKeyReleased(KeyEvent event)触发菜单项的按键释放事件。
fireMenuKeyTyped(KeyEvent event)触发菜单项的按键输入事件。
fireMenuSelected()触发菜单项被选中的事件。
fireMenuDeselected()触发菜单项被取消选中的事件。
processMouseEvent(MouseEvent event, MenuElement[] path, MenuSelectionManager manager)处理菜单项的鼠标事件。
processKeyEvent(KeyEvent event, MenuElement[] path, MenuSelectionManager manager)处理菜单项的键盘事件。
paramString()返回菜单项的字符串表示形式,包含文本、图标和状态等信息。
getPreferredSize()获取菜单项的首选大小。
getMaximumSize()获取菜单项的最大大小。
getMinimumSize()获取菜单项的最小大小。
isFocusTraversable()判断菜单项是否可获得焦点。
processMouseMotionEvent(MouseEvent event,Menuglobal.Geometry gComplete)处理菜单项的鼠标移动事件。
getComponent()获取菜单项的组件。

4.5.4 弹出式菜单

在Java中,弹出式菜单可以用JPopupMenu实现。
弹出式菜单(PopupMenu)是一种常见的用户界面元素,用于显示一系列选项,它会在用户点击或悬停时弹出,提供快速访问功能或进一步操作的选项。

下面是关于弹出式菜单的详细解释:

  1. 弹出触发方式:弹出式菜单通常通过用户的鼠标右键点击、长按或者触摸屏幕上的某个元素来触发。触发后,菜单将以弹出的形式显示在用户当前的操作界面上。

  2. 菜单内容:弹出式菜单通常包含一系列选项,每个选项都是一个可点击的操作项。这些选项可以是文本、图标、甚至是图像,用于表示该选项的功能或意义。

  3. 上下文相关性:弹出式菜单通常是根据当前上下文环境来动态生成的,它会根据用户当前所处的界面、选中的元素或其他特定条件来确定可用的选项。这样可以提供更加个性化的操作选项,提高用户的操作效率。

  4. 分层结构:弹出式菜单可以以分层结构显示,即一级菜单中包含子菜单,子菜单中又可以包含更多的子菜单。这种结构可以帮助组织和管理大量选项,使菜单更加清晰和易于导航。

  5. 快捷键支持:弹出式菜单通常支持快捷键,即用户可以通过键盘上的特定组合键来直接触发某个选项。这为那些熟悉快捷键操作的用户提供了更快速的操作方式。

  6. 弹出位置:弹出式菜单可以在触发源的附近弹出,也可以在屏幕的任意位置显示。通常,菜单会尽量避免遮挡用户的操作界面,以便用户能够清晰地看到菜单选项。

4.5.4.1 构造方法
构造方法描述
PopupMenu()创建一个空的弹出式菜单。
PopupMenu(Component invoker)创建一个指定触发组件的弹出式菜单。
PopupMenu(String label)创建一个指定标签的弹出式菜单。
PopupMenu(MenuContainer parent)创建一个指定容器的弹出式菜单。
PopupMenu(String label, boolean tearOff)创建一个指定标签和是否可拆分的弹出式菜单。
PopupMenu(String label, boolean tearOff, MenuContainer parent)创建一个指定标签、是否可拆分和容器的弹出式菜单。
PopupMenu(String label, boolean tearOff, MenuContainer parent, MenuListener l)创建一个指定标签、是否可拆分、容器和菜单监听器的弹出式菜单。
PopupMenu(String label, Image img)创建一个指定标签和图像的弹出式菜单。
PopupMenu(String label, Image img, MenuContainer parent)创建一个指定标签、图像和容器的弹出式菜单。
PopupMenu(String label, Image img, MenuContainer parent, MenuListener l)创建一个指定标签、图像、容器和菜单监听器的弹出式菜单。

注意:PopupMenu是AWT(Abstract Window Toolkit)中的一个类,用于创建和管理弹出式菜单。

4.5.4.2 常见方法
方法签名描述
void add(MenuComponent m)将给定的菜单组件添加到弹出式菜单中。
void add(String label)添加一个指定标签的菜单项到弹出式菜单中。
void add(MenuItem mi)向弹出式菜单添加一个菜单项。
void addSeparator()向弹出式菜单添加一个分隔条。
MenuComponent add(MenuComponent m, int index)将给定的菜单组件插入到弹出式菜单的指定位置。
void enable()启用弹出式菜单,使其可见。
void disable()禁用弹出式菜单,使其不可见。
void show(Component origin, int x, int y)在指定坐标位置显示弹出式菜单。
void remove(MenuComponent m)从弹出式菜单中移除指定的菜单组件。
void remove(int index)从弹出式菜单中移除指定位置的菜单组件。
void removeAll()从弹出式菜单中移除所有的菜单项。
void setLocation(int x, int y)设置弹出式菜单的位置。
void setLabel(String label)设置弹出式菜单的标签。
void setFont(Font font)设置弹出式菜单的字体。
void setForeground(Color fg)设置弹出式菜单的前景色(文本颜色)。
void setBackground(Color bg)设置弹出式菜单的背景色。
void addNotify()此方法由Java运行时系统调用,用于通知Popupmenu已经连接到应运行的应用程序窗口。
void removeNotify()此方法由Java运行时系统调用,用于通知Popupmenu即将从其所连接的应用程序窗口中分离。
文章来源:https://blog.csdn.net/kuxiaoyang/article/details/135673433
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。