w.setVisible(true); }
}
附加的swing小部件(上)
JComboBox
在这一节中,我将介绍 Swing 库中的其他全部组件、如何使用它们、它们看起来是什么样的,等等,这部分内容应当让您更好地了解 Swing 为 UI 开发人员提供了什么。
我们从 JComboBox 开始介绍。组合框与下拉选择相似,区别在于使用组合框时用户可以不从列表中选择项目,还可以选择一个(而且只有一个)项目。在某些版本的组合框中,还可以输入自己的选择。浏览器的地址栏就是一个示例:它是一个允许输入自己选项的组合框。以下是 JComboBox 在 Swing 中看起来的样子:
JComboBox
JComboBox 的重要函数包括 JComboBox 包含的数据。需要有一种方法来设置 JComboBox 中的数据、修改数据、在用户选择时得到用户的选择。可以使用以下 JComboBox 方法:
? ?
addItem():添加一个项目到 JComboBox.
JComboBox 中选中项目的索引。
get/setSelectedIndex():获取/设置
? ? ?
get/setSelectedItem():获取/设置选中的对象。
removeAllItems():从 JComboBox 删除所有对象。
remoteItem():从 JComboBox 删除特定对象。
JTextField
JTextField 的一个细微变化是 JPasswordField,它允许您隐藏在文本字段区域中显示的字符。毕竟,在您输入口令的时候,如果每个人都能看到,那可没什么好处?可能根本就不好,而且在私人数据如此脆弱的今天,您需要所有能够得到的帮助。以下是 JPasswordField 在 Swing 中看起来的样子:
JPasswordField
JPasswordField 上额外的“安全性”方法对 JTextField 的行为做了轻微改变,所以不能阅读文本:
? get/setEchoChar():获取/设置每次字符输入时在 JPasswordField 中显示的字符。在获
取口令时,不会返回“回声”,而是返回实际的字符。 ?
getText():
不应当 使用这个函数,因为它会带来可能的安全问题(String 会保存在内
存中,可能的堆栈转储会暴露口令)。 ?
getPassword():这是从
JPasswordField 中获得口令的恰当方法,因为它返回一个包含
口令的 char[]。为了保证恰当的安全性,数组应当被清为 0,以确保它不会保留在内存中。
JCheckBox/JRadioButton
JCheckBox 和 JRadioButton 组件向用户呈现选项,通常采用多选的格式。区别是什么?从实践的角度来说,它们没有那么不同。它们的行为方式相同。但是,在一般的 UI 实践中,它们有细微差异:JRadioButton 通常组合在一起,向用户呈现带有必选答案的问题,而且这些答案具有强制性(这意味着问题只能有一个答案)。JRadioButton 的行为保证了这个用法。一旦选择了JRadioButton,就不能取消对它的选择,除非选择了在同一组中的另外一个单选钮。从效果上看,这就保证了选项的惟一和必选。JCheckBox 的不同在于,允许随机地选择/取消除选择,并允许为问题选择多个答案。
这里是个示例。问题“您是男孩还是女孩!”有两个惟一答案选项“男孩”或“女孩”。用户必须选择一个,不能同时选中。另一方面,问题“您的习惯是什么?”的答案有“跑步”、“睡觉”或“阅读”,不应当只允许为此问题选择一个答案,因为人们可能有不止一个习惯。
把这些 JCheckBoxe 或 JRadioButton 捆绑成一组的类是 ButtonGroup 类。它允许把选项组织在一起(例如“男孩”和“女孩”),这样,其中一个被选择时,另外一个就自动取消选择。
以下是 JCheckBox 和 JRadioButton 在 Swing 中看起来的样子:
JCheckBox 和 JRadioButton
需要记住的重要的 ButtonGroup 方法是:
? ?
add():添加 JCheckBox 或 JRadioButton 到 ButtonGroup。
ButtonGroup 中的全部组件,允许对它们进行迭代,找到其中选
getElements():获得
中的那个。
JMenu/JMenuItem/JMenuBar
JMenu、JMenuItem 和 JMenuBar 组件是在 JFrame 中开发菜单系统的主要构造块。任何菜单系统的基础都是 JMenuBar。它平淡而乏味,但却是必需的,因为每个 JMenu 和 JMenuItem 都要用它构建。要用 setJMenuBar() 方法把 JMenuBar 附着到 JFrame。一旦将它附加到 JFrame 中,就可以添加所有想要的菜单、子菜单和菜单项。
JMenu/JMenuItem 的区别看起来可能很明显,但实际上,在幕后看起来并不像表面那样。看看类的类层次结构,就知道JMenu 是 JMenuItem 的子类。但是,在表面上,它们是有区别的:用 JMenu 包含其他 JMenuItem 和 JMenu;JMenuItem 在选中时触发操作。
JMenuItem 也支持快捷键的概念。与您用过的大多数应用程序一样,Swing 应用程序允许您按下 Ctrl+(某个键)来触发一个操作,就像选中菜单键本身一样。想想用来剪切和粘贴的快捷键 Ctrl+X 和 Ctrl+V。
除此之外,JMenu 和 JMenuItem 都支持访问键。用 Alt 键与某个字母关联,模拟菜单本身的选择(例如,在 Windows 中按下 Alt+F,然后按下 Alt+x 就可以关闭应用程序)。
以下是包含 JMenu 和 JMenuItem 的 JMenuBar 在 Swing 中的样子:
JMenuBar、JMenu 和 JMenuItem
这些类需要的重要方法是:
? JMenuItem and JMenu:
o o
get/setAccelerator():获取/设置用作快捷键的
Ctrl+键。
get/setText():获取/设置菜单的文本。
相关推荐: