前面介绍了两种文本输入框的用法,不过实际应用很少需要用户亲自文字,而是在界面上列出几个选项,让用户勾勾点点完成选择,这样既方便也不容易弄错。依据选择的唯一性,可将选项控件分为两类:一类是在方框中打勾的复选框,多个复选框允许同时勾选;另一类是在圆圈中点选的单选框,一组单选框最多只能选中一个。
AWT实现复选功能的控件名叫Checkbox,它由两部分组成,左边部分是个支持打勾的方框,右边部分是说明文字。Checkbox类似一种特殊的按钮,只不过Button的文字在按钮内部,而Checkbox的文字在方框右边。对于说明文字来说,可以调用setText方法设置文本内容,还可调用setFont方法设置文本字体。对于整个复选框的单击事件而言,则需调用addItemListener方法给复选框添加点击监听器,一旦发生单击事件,就会触发监听器的itemStateChanged方法,在该方法内即可判断复选框的选中状态并开展后续处理。
接下来准备在窗口上添加三个复选框,模拟餐厅的点菜过程,看看不同的勾选组合将会得到怎样的菜单。首先要在窗口上添加三个复选框对应三道菜肴,同时添加两个文本标签,一个标签展示当前的勾选结果,另一个展示已经点了的菜单,对应的控件创建与面板添加代码如下所示:
Label labelCenter = new Label("这里查看勾选结果"); // 创建一个文本标签
Panel panelCenter = new Panel(); // 创建中央面板
panelCenter.add(labelCenter); // 在中央面板上添加文本标签
frame.add(panelCenter, BorderLayout.CENTER); // 把中央面板添加到窗口的中间位置
Label labelBottom