Swing 是 Java 的图形用户界面 (GUI) 架构,它提供了一系列的组件,用于构建交互式的桌面应用程序。
面板组件可以说是 Swing 中最常用的容器类组件之一,它被用于组织和布局其他组件。
JPanel 是 Swing 中的一个容器类,它继承自JComponent类。JPanel 可以包含其他的 Swing 组件,如按钮、标签、文本框等,用于创建复杂的用户界面布局。
面板组件的主要作用是提供一个可见的区域,用于容纳其他组件,并定义布局规则。在创建 JPanel 对象时可以选择不同的布局管理器来对其中的组件进行自动布局,如 FlowLayout、BorderLayout、GridLayout 等。
通过使用面板组件,可以实现灵活的用户界面布局。可以将多个面板组件嵌套在一起,形成层次化的布局,实现更加复杂和多样化的界面。
JPanel 是 Java Swing 中常用的容器类组件之一,它继承自 JComponent 类。JPanel 可以包含其他的 Swing 组件,如按钮、标签、文本框等,用于创建复杂的用户界面布局。
面板组件的主要作用是提供一个可见的区域,用于容纳其他组件,并定义布局规则。
构造方法 | 描述 |
---|---|
JPanel() | 创建一个新的JPanel对象,并使用Flow布局。 |
JPanel(LayoutManager layout) | 创建一个新的JPanel对象,并使用指定的布局管理器。 |
JPanel(LayoutManager layout, boolean isDoubleBuffered) | 创建一个新的JPanel对象,并使用指定的布局管理器和双缓冲设置。 |
JPanel(boolean isDoubleBuffered) | 创建一个新的JPanel对象,并使用Flow布局以及指定的双缓冲设置。 |
方法 | 描述 |
---|---|
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() | 返回此面板是否是不透明的。 |
JScrollPane 是一个在 Java Swing GUI 应用程序中用于实现滚动功能的容器组件。它允许用户在内容超过可视区域大小时滚动查看。
JScrollPane 的主要特点:
内容视图:JScrollPane 可以容纳一个或多个其他组件,作为内容视图。这些组件通常可以是任意的 Swing 组件,比如 JPanel、JTextArea 等等。
滚动条:JScrollPane 提供垂直和水平滚动条,使用户能够在内容超过可视区域时进行滚动。当内容不足以填充可视区域时,滚动条将自动隐藏。
自动调整尺寸:JScrollPane 具有自动调整尺寸的能力,以根据内容的变化自动调整滚动条的位置和大小。
嵌套布局:JScrollPane 可以嵌套在其他容器中,并且可以使用各种布局管理器来控制其布局。
使用 JScrollPane 的基本步骤如下:
创建一个容器组件,并将其作为内容视图,例如:JPanel panel = new JPanel();
将内容视图加入到 JScrollPane 中,例如:JScrollPane scrollPane = new JScrollPane(panel);
将 JScrollPane 加入到容器中,在需要滚动功能的位置上放置 JScrollPane,例如:frame.add(scrollPane);
根据需要设置 JScrollPane 的其他属性,例如:scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
构造方法 | 说明 | 示例 |
---|---|---|
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); |
例:
JScrollPane scrollPane = new JScrollPane();
JPanel panel = new JPanel();
JScrollPane scrollPane = new JScrollPane(panel);
JScrollPane scrollPane = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
JPanel panel = new JPanel();
JScrollPane scrollPane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
JScrollPane scrollPane = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED, true);
方法 | 描述 |
---|---|
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的辅助功能上下文。 |
文本组件是指在软件或网页设计中用于显示文本内容的组件。它是用户界面设计中常见的一种元素,用于展示静态或动态的文本信息。
文本组件都有一个共同的父类JTextComponent,JTextComponent是一个抽象类。
文本组件通常具有以下特点和功能:
显示文本内容:文本组件主要用于显示文本信息,可以展示短句、段落或长篇文章等。用户可以通过阅读文本内容来获取所需的信息。
格式化文字:文本组件通常支持对文本进行格式化,使得文本具有不同的字体、字号、颜色、对齐方式等样式。这可以通过使用富文本或HTML标记语言来实现。
多语言支持:文本组件可以显示多种语言的文本,能够适应不同用户的语言需求。
文本链接:有些文本组件支持将文本内容转变为链接,用户可以点击链接以实现跳转或执行特定的操作。
文本编辑:在某些情况下,文本组件可以允许用户编辑文本内容,例如在输入框中输入文本或通过富文本编辑器进行编辑。
自适应大小:文本组件通常具有自适应大小的特性,这意味着它可以根据文本内容的长度和字体样式自动调整大小,以确保所有文本内容都可以正确显示出来。
滚动条:如果文本内容超出文本组件的显示区域,一些文本组件还可以提供滚动条功能,使用户能够滚动查看全部内容。
JTextField是Java Swing库中的一个文本输入组件,用于接收用户的文本输入。它是一个单行的文本框,用户可以通过键盘输入文字。
构造方法 | 描述 |
---|---|
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。 |
方法 | 描述 |
---|---|
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() | 获取文本框的首选尺寸。 |
JTextArea是Swing库中的一个文本区域组件,用于显示和编辑多行文本。
构造方法 | 描述 |
---|---|
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对象,并指定文本容器的尺寸。 |
方法 | 描述 |
---|---|
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) | 在文本区域中插入一个组件。 |
标签组件是一种常见的UI组件,用于给内容或元素添加分类、标记或特定信息。它通常以短文本的形式显示,并且可以与其他文本或图标结合使用。
标签组件的特点:
JLabel 是 Java Swing 库中的一个组件,用于在用户界面中显示文本或图像。它是一个简单的标签控件,通常用于显示静态文本或图像,并不具备用户交互功能。
构造方法 | 描述 |
---|---|
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) |
创建一个带有指定文本、图像、水平对齐方式和垂直对齐方式的标签组件 |
方法 | 描述 |
---|---|
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) |
从标签上移除指定的鼠标事件监听器 |
按钮组件是一种常见的用户界面元素,用于触发特定的操作或交互。它通常以可点击的形式呈现,用户点击按钮后会触发相应的事件或执行特定的操作。
Swing常见的按钮组件JButton、JCheckBox、JRadioButton等,都是抽象类AbstractButton类的直接或间接子类。
按钮组件的特点:
视觉表现:按钮通常具有与其他元素不同的外观,以便在界面中显眼地展示。它可以具有不同的形状、大小、颜色、样式和图标等,以适应设计风格和用户体验需求。
交互行为:按钮被点击时,会触发相应的交互行为。这可能包括提交表单、打开链接、执行特定操作、显示对话框或弹窗等。按钮通常具有明确的目的,用户点击按钮时会明确地指示他们的意图。
状态反馈:按钮可以在不同的状态下展示,以提供反馈给用户。例如,按钮可以处于激活(可点击)或禁用(不可点击)状态,以反映当前的应用程序状态或用户的权限。禁用状态的按钮通常以灰色或不可操作的外观表示。
按钮类型:按钮组件可以根据其用途分为多种类型。例如,可提交表单的提交按钮、重置表单的重置按钮、返回上一页的返回按钮、触发菜单的菜单按钮等。这些不同类型的按钮具有不同的外观和交互行为。
JCheckBox 是 Java Swing 库中提供的一个复选框组件,用于在图形用户界面中显示可选或选中的选项。
构造方法 | 说明 |
---|---|
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,并使用指定的文本和图标作为选项的标签和图标。 |
方法 | 说明 |
---|---|
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 是否以扁平化的边框样式显示。 |
JRadioButton是Java Swing提供的单选按钮组件。它是javax.swing.JRadioButton类的子类,在用户界面中允许用户从一组互斥的选项中选择一个。
构造方法 | 描述 |
---|---|
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组件。 |
方法 | 描述 |
---|---|
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的最大大小。 |
下拉框(ComboBox)是一种常见的用户界面组件,它通常用于提供用户选择的选项列表。下拉框组件结合了文本框和列表框的功能,用户可以通过点击下拉按钮选择列表中的选项,也可以手动输入文本。
JComboBox组件称为下拉框或者组合框,它将所有选项折叠在一起,默认显示的是第一个添加的选项。当用户点击下拉框时,会出现下拉式的选择列表,用户可以从中选择其中一项并显示。
JComboBox下拉框组件分为可编辑和不可编辑两种形式,对于不可编辑的下拉框,用户只能选择现有的选项列表。对于可编辑的下拉框,用户既可以选择现有的选项列表,也可多输入新的内容。需要注意的是,用户输入的内容只能当做当前项显示,并不会添加到下拉框的选项列表中。
在Java中,使用Swing库可以创建下拉框组件。常用的Swing下拉框组件是JComboBox类,它继承自JComponent类。
构造方法:
构造方法 | 描述 |
---|---|
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) | 创建一个使用指定默认数据模型的下拉框对象,并指定是否可编辑,默认为不可编辑。 |
常见方法:
方法签名 | 描述 |
---|---|
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) | 从下拉框中移除一个弹出菜单监听器。 |
下拉式菜单是一种常见的用户界面元素,通常用于提供一系列选项供用户选择。它通常以列表形式显示在屏幕上,当用户点击或悬停在菜单上时,会展开显示选项列表。
Java提供了3个组件用于创建下拉式菜单:JMenuBar(菜单栏)、JMenu(菜单)、JMenuItem(菜单项)
JMenuBar是Java Swing库中的一个类,用于创建菜单栏。菜单栏通常位于窗口的顶部,用于提供一系列菜单供用户选择。
构造方法 | 描述 |
---|---|
JMenuBar() | 创建一个新的JMenuBar对象。 |
方法签名 | 描述 |
---|---|
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。 |
JMenu是Java Swing库中的一个组件,它表示一个菜单。菜单是由一系列菜单项(JMenuItem)组成的,可以在菜单中添加子菜单(JMenu)。
构造方法签名 | 描述 |
---|---|
JMenu() | 创建一个新的JMenu对象。 |
JMenu(Action a) | 使用指定的操作创建一个新的JMenu对象。 |
JMenu(String s) | 使用指定的文本创建一个新的JMenu对象。 |
JMenu(String s, boolean isTopLevelMenu) | 使用指定的文本和顶级菜单标志创建一个新的JMenu对象。 |
方法签名 | 描述 |
---|---|
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组件树。 |
JMenuItem是Java Swing库中的一个类,用于创建菜单中的一个选项。它允许用户在菜单上选择一个选项,并执行相应的操作。
构造方法 | 描述 |
---|---|
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) |
创建一个具有指定文本、助记符和快捷键的菜单项。 |
方法 | 描述 |
---|---|
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() |
获取菜单项的组件。 |
在Java中,弹出式菜单可以用JPopupMenu实现。
弹出式菜单(PopupMenu)是一种常见的用户界面元素,用于显示一系列选项,它会在用户点击或悬停时弹出,提供快速访问功能或进一步操作的选项。
下面是关于弹出式菜单的详细解释:
弹出触发方式:弹出式菜单通常通过用户的鼠标右键点击、长按或者触摸屏幕上的某个元素来触发。触发后,菜单将以弹出的形式显示在用户当前的操作界面上。
菜单内容:弹出式菜单通常包含一系列选项,每个选项都是一个可点击的操作项。这些选项可以是文本、图标、甚至是图像,用于表示该选项的功能或意义。
上下文相关性:弹出式菜单通常是根据当前上下文环境来动态生成的,它会根据用户当前所处的界面、选中的元素或其他特定条件来确定可用的选项。这样可以提供更加个性化的操作选项,提高用户的操作效率。
分层结构:弹出式菜单可以以分层结构显示,即一级菜单中包含子菜单,子菜单中又可以包含更多的子菜单。这种结构可以帮助组织和管理大量选项,使菜单更加清晰和易于导航。
快捷键支持:弹出式菜单通常支持快捷键,即用户可以通过键盘上的特定组合键来直接触发某个选项。这为那些熟悉快捷键操作的用户提供了更快速的操作方式。
弹出位置:弹出式菜单可以在触发源的附近弹出,也可以在屏幕的任意位置显示。通常,菜单会尽量避免遮挡用户的操作界面,以便用户能够清晰地看到菜单选项。
构造方法 | 描述 |
---|---|
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)中的一个类,用于创建和管理弹出式菜单。
方法签名 | 描述 |
---|---|
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即将从其所连接的应用程序窗口中分离。 |