下拉框组件
JComboBox
1、JComboBox组件是下拉框,它把所有选项折叠在一起,默认显示的是第一个添加的选项。当用户单击下拉框的时候,会出现下拉式的选择列表,用户可以选择其中一项并显示。
2、JComboBox下拉框组件有可编辑和不可编辑两种形式,对于不可编辑的下拉框,用户只能选择现有的选项列表。对于可编辑的下拉框,用户既可以选择现有的选项列表,也可以自己输入新的内容。(用户自己输入的内容只能作为当前项显示,不会添加到下拉框的选项列表中。)
3、构造方法:
- JComboBox() 创建一个没有可选项的下拉框
- JComboBox(Object[] items) 创建一个下拉框,把Object数组中的元素作为下拉框的下拉列表选项
- JComboBox(Vector items) 创建一个下拉框,把Vector集合中的元素作为下拉框的下拉列表选项
4、成员方法:
- void addItem(Object object) 为下拉框添加选项
- void insertItemAt(Object object,int index) 在指定的索引处插入选项
- Objct getItemAt(int index) 返回指定索引处选项,第一个选项的索引为0
- Object getSelectedItem() 返回当前所选项
- int getItemCount() 返回下拉框中选项的数目
- void removeItemAt(int index) 移除指定索引处的选项
- void removeAllItems() 删除下拉框中所有的选项
- void removeItem(Object object) 从下拉框中删除指定选项
- void setEditable(boolean aFlag) 设置下拉框的选项是否可编辑,aFlag为true则可编辑,反之则不可编辑
菜单(弹出式和下拉式菜单)
下拉式菜单
主要用到三个组件:Jmenu(菜单)、JmenuBar(菜单栏)、JmenuItem(菜单项)。
JMenu
1、JMenu表示一个菜单,用来整合管理菜单项。常用构造函数JMenu(String text)创建菜单。(text是菜单文本内容)
2、常用方法:
- void addSeparator() 添加分隔符到菜单的末尾
- JMenuItem add(JMenuItem menuItem) 把菜单项添加到菜单末尾,返回此菜单项
- JMenuItem getItem(int pos) 返回指定索引处的菜单项,和数组相同第一个菜单项的索引为0
- int getItemCount() 返回菜单上的项数,菜单项和分隔符都计算在内
- JMenuItem insert(JmenuItem menuItem,int pos) 在指定索引处插入菜单项
- void remove(int pos) 从菜单中移除指定索引处的菜单项
- void remove(JMenuItem menuItem) 从菜单中移除指定的菜单项
- void removeAll() 从菜单项中移除指定菜单单项
- void insertSeparator(int pos) 在指定索引处插入分隔符
JMenuBar
JMenuBar表示水平的菜单栏,用来管理一组菜单,不参与用户的交互式操作,可以使用顶级容器的setJMenuBar()方法把菜单放置在顶级容器顶部;创建完之后可以使用add()方法添加菜单。
JMenuItem
JMenuItem表示一个菜单项,是下拉式菜单系统中最基本的组件;可使用构造方法JMenuItem(String text)为菜单项指定文本内容;可以使用setText()设置文本,可以使用setIcon()设置图标。
package com.company.www;
import javax.swing.*;
public class Text {
public static void text() {
JFrame frame = new JFrame("下拉式菜单");
frame.setSize(500, 300);
frame.setVisible(true);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JMenuBar menuBar=new JMenuBar();
JMenu menu=new JMenu("数学");
JMenuItem menuItem1=new JMenuItem("高数");
JMenuItem menuItem2=new JMenuItem("离散");
JMenuItem menuItem3=new JMenuItem("线代");
menu.add(menuItem1);
menu.add(menuItem2);
menu.add(menuItem3);
menuBar.add(menu);
frame.setJMenuBar(menuBar);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(Text::text);
}
}
弹出式菜单
1、JPopupMenu弹出式菜单也通过调用add()方法添加JMenuItem菜单项。
2、JPopupMenu默认不可见,如果想要显示出来,必须调用它的show(Component invoker,int x,int y)方法。invoker用来显示JPopupMenu菜单的参考组件,x和y表示invoker组件坐标,表示的是以JPopupMenu菜单左上角为原点的坐标。