JComboBox组件被称为组合框或者下拉列表框,它将所有选项放在一起,默认显示的是第一个添加的选项。JComboBox组合框组件分为可编辑和不可编辑两种形式,对于不可编辑的组合框,用户只能在现有选项列表中进行选择,对于可编辑的组合框,用户可以自己输入新的内容,也可以在现有选项中选择。JComboBox类的常用方法如表12.9所示。
方法声明 | 功能描述 |
---|---|
public JComboBox() | 创建一个没有可选项的组合框 |
public JComboBox(Object[] items) | 创建包含指定数组中的元素的JComboBox |
public JComboBox(Vector<?> items) | 创建包含指定Vector中的元素的组合框 |
void addItem(Object object) | 为项列表添加项 |
void insertItemAt(Object object, int index) | 在项列表中的给定索引处插入项 |
Object getSelectedItem() | 返回当前所选项 |
void addItemListener(ItemListener aListener) | 添加ItemListener监听事件 |
表12.9中,列举了JComboBox类的常用方法,接下来通过案例来演示JComboBox类的使用,如例12-9所示。
例12-9 Demo1209.java
1import java.awt.*;
2import javax.swing.*;
3public class Demo1209 {
4 public static void main(String[] args) {
5 JFrame jFrame = new JFrame("JFrame窗口"); // 创建JFrame窗体
6 JComboBox jComboBox= new JComboBox(); // 创建下拉框
7 JPanel p = new JPanel();
8 jComboBox.addItem("请选择您喜欢的古都"); // 添加下拉框选项
9 jComboBox.addItem("安阳");
10 jComboBox.addItem("开封");
11 jComboBox.addItem("洛阳");
12 jComboBox.addItem("西安");
13 p.add(jComboBox);
14 jFrame.getContentPane().add(p);
15 jFrame.setLayout(new FlowLayout()); // 设置布局
16 jFrame.setSize(300, 180);
17 // 设置窗体关闭方式
18 jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
19 jFrame.setVisible(true);
20 }
21}
程序的运行结果,在用鼠标单击组合框之后如图12.11所示。
图12.11中,运行程序弹出JFrame窗口,窗口中有下拉列表,列表中有四个选项,先创建JFrame窗体,在构造方法中初始化窗体,将下拉框及其选项都添加进去,用户可以单击组合框进行选择。
文本编辑组件是用于接收用户输入的信息并具有一定编辑功能的界面元素。包括单行文本框组件(JTextField)、密码框组件(JPasswordField)和多行文本域组件(JTextArea),它们都继承自JTextComponent抽象类,这些组件在实际开发中应用广泛。
JTextComponent类的常用方法如表12.10所示。
构造方法声明 | 功能描述 |
---|---|
public void setText(String text) | 设置组件中的文本为text |
public String getText() | 返回组件中所包含的所有文本 |
public String getSelectedText() | 返回文本组件中被选中的文本 |
public void setEditable(boolean b) | 设置文本组件是否可编辑 |
文本框组件用来显示或编辑一个单行文本,在Swing中通过JTextField类创建,该类继承自JTextComponent类,JTextField类的构造方法如表12.11所示。
构造方法声明 | 功能描述 |
---|---|
public JTextField() | 创建一个新的TextField |
public JTextField(int columns) | 创建一个具有指定列数columns的新的空TextField |
public JTextField(String text) | 创建一个用指定文本text的TextField |
public JTextField(String text, int columns) | 创建一个用指定文本text和列数columns的新 TextField |
表12.11中列举出了JTextField类的构造方法,接下来通过案例来演示JTextField类的使用,如例12-10所示。
例12-10 Demo1210.java
1import java.awt.*;
2import javax.swing.*;
3
4public class Demo1210 {
5 public static void main(String[] args) {
6 JFrame jFrame = new JFrame("JFrame窗口");// 创建JFrame窗体
7 // 创建文本框
8 final JTextField jtf = new JTextField("AAA软件教育", 15);
9 jFrame.add(jtf); // 将文本框添加到JFrame
10 JButton jb = new JButton("测试");
11 jFrame.add(jb);
12 jFrame.setLayout(new FlowLayout());
13 jFrame.setSize(300, 150);
14 // 设置窗体关闭方式
15 jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
16 jFrame.setVisible(true);
17 }
18}
程序的运行结果如图12.12所示。
图12.12中,运行程序先创建了JFrame窗体,然后创建了JTextField文本框对象并设置内容为“AAA软件教育”,将文本框添加到JFrame窗体,接着创建一个按钮,将其添加到JFrame窗体。