组合框
组合框(JComboBox)是一个下拉式菜单,它有两种形式:不可编辑的和可编辑的。
JComboBox常用的构造方法有以下两种。
·JComboBox( ):创建一个没有任何可选项的默认组合框
·JComboBox(Object[ ]items):根据Object数组创建组合框,Object数组的元素即为组合框中的可选项。
在JComboBox类中定义了相关的方法,可以添加或删除可选项。
·voidaddltem(Object anObject):在末尾位置添加新的可选项。
·ObjectgetItemAt(int index):返回指定索引序号index处的可选项。
·intgetItemCount( ):返回列表中的项数。
·voidinsertItemAt(Object anObject,int index):在index指定的位置添加新的可选项anObject。
·intgetSelectedIndex( ):返回列表中与给定项匹配的第一个选项的索引序号。
·ObjectgetSelectedItem( ):返回当前所选项。
·voidremoveAllItems( ):删除所有可选项。
·voidremoveItem(Object anObject):删除由anObject指定的可选项。
·voidremoveItemAt(int anlndex):删除由anlndex指定处的可选项。
列表
列表(JList)是可供用户进行选择的一系列可选项。常用的构造方法如下。
·JList( ):构造一个空列表。
·JList(Object[ ]listData):构造一个列表,列表的可选项由对象数组listData指定。
·JList(Vector<?>listData):构造一个列表,使其显示指定Vector中的元素。
当用户在列表上进行选择时,将引发ListSelectionEvent事件。在JList中提供了addListSelectionListener(ListSelectionListener listener)方法,用于注册对应的事件侦听程序。在ListSelectionListener接口中,只包含一个方法:
public void valueChanged(ListSelectionEvent e);
文本组件
文本组件可用于显示信息和提供用户输入功能,在Swing中提供了文本域(JTextField)、口令输入域(JPasswordField)、文本区(JTextArea)等多个文本组件,这些文本组件都有一个共同的父类——JTextComponent.主要方法:
·String getSelectedText( ):从文本组件中提取被选中的文本内容。
·String getText( ):从文本组件中提取所有文本内容。
·String getText(int offs,int len):从文本组件中提取指定范围的文本内容。
·void select(int selectionStart,int selectionEnd):在文本组件中选中指定的起始和结束位置之间的文本内容。
·void selectAll( ):在文本组件中选中所有文本内容。
·void setEditable(boolean b):设置为可编辑或不可编辑状态。
·void setText(String t):设置文本组件中的文本内容。
·void setDocument(Document doc):设置文本组件的文档。
·void copy( ):复制选中的文本到剪贴板。
·void cut( ):剪切选中的文本到剪贴板。
·void paste( ):将剪贴板的内容粘贴到当前位置
文本域
文本域是一个单行的文本输入框,可用于输入少量文本,常用的构造方法如下。
·JTextField( ):构造一个空文本域。
常用方法:
·int getColumns( ):返回文本域的列数。
文本区
文本区是一个多行多列的文本输入框,常用的构造方法如下。
·JTextArea( ):构造一个空文本区。
菜单组件
菜单栏是窗口中的主菜单,用来包容一组菜单。菜单是最基本的下拉菜单,用来包容一组菜单项或子菜单,比如“File”中列出了4个菜单项。菜单栏只有一种构造方法,即JMenuBar( )。
菜单的常用构造方法如下。
·JMenu( ):构造没有文本的新菜单。
·JMenu(String s):构造具有指定标签的新菜单,String型参数s指定了菜单上的文本。
·JMenu(String s,boolean b):构造具有指定标签的新菜单,指示该菜单是否可以分离。
菜单项
setAccelerator(KeyStrokekeyStroke)方法,使用该方法可以为菜单项设置加速键,例如,下面命令首先创建了一个菜单项,然后为其设置快捷键和加速键。
JMenuItem menultem=new JMenuItem(“Open…”);
menultem.setMnemonic(KeyEvent.VK_0);
menultem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1,ActionEvent.ALT_MASK));
在Menu类中定义有addSeparator( )和insertSeparator(int index)方法,通过这些方法,可以在某个菜单的各个菜单项间加入分隔线,例如:
menul.add(mi1);
menul.add(mi2);
menul.addSeparator( );
menul.add(mi3);
上述命令在菜单项mi2和mi3间加入了一条分隔线。
此外,在javax.swing包中还定义了一个JSeparator类,也可以通过如下命令在菜单项间加入分隔线。
menul.add(mi1);
menul.add(mi2);
menul.add(newJSeparator( ));
menul.add(mi3);
复选菜单项和单选菜单项
复选菜单项(或单选菜单项)与普通菜单项类似,可以显示文本和图标。
对话框
对话框分为强制型和非强制型两种。强制型对话框被关闭之前,其他窗口无法接收任何形式的输入,也就是该对话过程不能中断,这样的窗口也称为模式窗口。非强制型对话框可以中断对话过程,去响应对话框之外的事件。
标准对话框
JDialog类通常用于创建自定义的对话框,除此之外,在Swing中还提供了用于显示标准对话框的JOptionPane类。在JOptionPane类中定义了多个showXxxDialog形式的静态方法,
文件对话框
文件对话框是专门用于对文件(或目录)进行浏览和选择的对话框
·showOpenDialog( )方法将显—个“打开”文件对话框,showSaveDialog( )方法显示“保存”文件对话框。上述两个方法中都有一个Component型参数,该参数指定文件对话框的“父组件”。“父组件”决定了文件对话框的显示位置,如果该参数为null,则文件对话框显示在屏幕正中。对于文件对话框中的事件,一般都无需进行处理。当用户进行文件选择之后,可以通过getSelectedFile( )方法取得用户所选择的文件。