第10章 Swing组件及应用_第1页
第10章 Swing组件及应用_第2页
第10章 Swing组件及应用_第3页
第10章 Swing组件及应用_第4页
第10章 Swing组件及应用_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第10章Swing组件及应用10.1Swing简介10.1Swing简介Swing窗口远比AWT的窗口复杂,Swing窗口包含了5个层次。(1)顶层容器TopLevelContainer顶层容器TopLevelContainer是一个窗口容器对象,在这样的一个对象里可以再加入其他的窗口对象。JFrame、JApplet、JDialog等就可以作为顶层容器TopLevelContainer。(2)根面板RootPane根面板RootPane:是顶层容器TopLevelContainer中所包含的最内层,通常我们无法在这一层做操作与处理。(3)层次面板LayeredPane加入在层次面板LayeredPane中对象可以设定其层次,而不会被内容面板ContentPane中对象屏蔽。(4)内容面板ContentPane大部分的可视对象都放在内容面板ContentPane中,一般在程序中必须用getContentPane()方法来获取窗口容器,然后将其加到这一层中。(5)玻璃面板GlassPane在玻璃面板GlassPane这一层次上主要用来产生绘图效果,以及触发窗口程序的各种事件。10.1Swing简介Swing包是JFC的一部分,由许多包组成。javax.swing包含了图形用户界面所需的基本组件和工具。包

名说

明javax.swingSwing组件和使用工具类javax.swing.event事件和监听器类javax.swing.tableJTable表格组件类javax.swing.treeJtree树型视图组件类javax.swing.undo支持取消操作javax.swing.border轻量组件的边框javax.swing.colorchooser颜色选择对话框JColorChooserjavax.swing.filechooser文件选择对话框JFileChooserjavax.swing.plaf抽象类,定义UI代表的行为javax.swing.plaf.basic实现标准界面样式公共功能的基类javax.swing.plaf.metal实现Metal界面样式com.sun.swing.plaf.motif实现Motif界面样式com.sun.java.swing.plaf.windows.实现Windows界面样式javax.swing.text支持文档的显示与编辑javax.swing.text.html支持HTML文档的显示与编辑javax.swing.text.html.parserHTML文档分析器javax.swing.text.rtf支持RTF文档的显示与编辑10.2.1窗口JFrame

1.构造函数格式:JFrame()功能:建立一个无标题的JFrame。格式:JFrame(Stringtitle)功能:建立一个标题为title的JFrame。格式:JFrame(GraphicsConfiguration

gc)功能:建立一个无标题但要求指定配置显示设备的JFrame。格式:JFrame(Stringtitle,GraphicsConfiguration

gc)功能:建立一个标题为title、显示设备配置为gc的JFrame。2.常用方法因为JFrame继承了Frame,所以Frame的几乎所有方法,JFrame都具有。方

法说

明ContainergetContentPane()返回JFrame的内容面板JMenuBar

getJMenuBar()返回JFrame的菜单条voidsetDefaultCloseOperation(intop)设定JFrame窗口关闭时的操作。op的值为:DO_NOTHING_ON_CLOSE:不关闭窗口;HIDE_ON_CLOSE:隐藏窗口;DISPOSE_ON_CLOSE:隐藏并处理窗口;EXIT_ON_CLOSE:关闭窗口voidsetJMenuBar(JMenuBar

menubar)设定JFrame中的菜单条10.2.1窗口JFrame【例10.1】建立一个JFrame对象,运行的结果为图,注意程序及运行结果的差异。程序如下:importjava.awt.*;importjavax.swing.*;//用到Swing组件,必须引用java.swing包publicclassMyJFrame{ publicstaticvoid

main(Stringargs[]) { JFramefr=newJFrame(); //创建一个无标题的JFrame对象fr fr.setTitle("这是一个JFrame,它不同于AWT的Frame"); //将fr的标题设为"这是一个JFrame,它不同于AWT的Frame"

FlowLayoutfl=newFlowLayout(); //创建一个布局管理器FlowLayout的对象10.2.1窗口JFrame fr.getContentPane().setLayout(fl); //设定窗口fr的布局管理器为fl //注意:这里必须先用getContentPane()方法,这是与Fame不同的

fr.setSize(400,300); //设定fr的宽度为400,高度为300

fr.getContentPane().setBackground(Color.green); //设定fr的背景色为绿色。 //注意:这里应该先用getContentPane()方法, //否则设置的颜色看不到,这是与Fame不同的

fr.setLocation(300,500); //设定fr左上角的初始位置为(300,500)

fr.setResizable(true); //设定fr为可调整大小 fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设定窗口可以关闭。在AWT的Frame中要注册监听器的代码

fr.setVisible(true); }}10.2.2容器JPanel

1.构造函数格式:JPanel()功能:建立一个JPanel对象。格式:JPanel(LayoutManagerlayout)功能:建立一个JPanel对象,其布局管理器为layout。2.常用方法JPanel一般只用它父类的方法,它自己几乎没有增加或重写父类的方法。【例10.2】建立一个JFrame对象和JPanel对象,运行的结果为图,和AWT的Frame及Panel相比,注意程序及运行结果的差异。10.2.2容器JPanel程序如下:importjava.awt.*;importjavax.swing.*;publicclassMyJPanel{ publicstaticvoidmain(Stringargs[]) { JFrame

fr=newJFrame();

fr.setTitle("JPanel的用法");

BorderLayout

bl=newBorderLayout(); //创建一个布局管理器BorderLayout的对象bl fr.getContentPane().setLayout(bl); //设定窗口fr的布局管理器为bl

//注意:这里必须先用getContentPane()方法

JPaneljp=newJPanel(newGridLayout(2,2)); //创建一个面板容器JPanel的对象jp,布局为2行2列的GridLayout fr.getContentPane().add("Center",jp); //将容器jp加到窗口fr的中央

JLabeljl=newJLabel("thisisatest"); //创建一个标签JLabel的对象jl,其标题为"thisisatest"

fr.getContentPane().add("South",jl); //将标签jl加到窗口fr的南部,这里必须先用getContentPane()方法10.2.2容器JPanelJLabell1=newJLabel("First",JLabel.CENTER);jp.add(l1);//将标签jl加到容器jp中JLabell2=newJLabel("Second",JLabel.CENTER);jp.add(l2);JLabell3=newJLabel("Third",JLabel.CENTER);jp.add(l3);Fontft=newFont("Serif",Font.BOLD,18); //定义一个字体对象ftjl.setFont(ft);//设定jl的字体l1.setFont(ft);l2.setFont(ft);l3.setFont(ft);fr.getContentPane().setBackground(Color.green);//设定fr的背景色为绿色fr.setLocation(300,500); //设定窗口的初始显示位置fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设定窗口可以关闭fr.setSize(400,300);fr.setResizable(true);fr.setVisible(true);}10.3.1标签JLabel

1.构造函数格式:JLabel()功能:建立一个没有标题、没有图标的JLabel对象。格式:JLabel(Stringtxt)功能:建立一个JLabel对象,其初始标题为txt,没有图标。格式:JLabel(Stringtxt,int

halign)功能:建立一个JLabel对象,其初始标题为txt,水平对齐方式为halign,没有图标。其中halign的值为LEFT、RIGHT、CENTER分别代表左对齐、右对齐、居中。格式:JLabel(Iconico)功能:建立一个JLabel对象,其初始图标为ico,没有标题。格式:JLabel(Stringtxt,Iconico,int

halign)功能:建立一个JLabel对象,其初始标题为txt,初始图标为ico,水平对齐方式为halign。格式:JLabel(Iconico,int

halign)功能:建立一个JLabel对象,其图标为ico,水平对齐方式为halign,没有标题。2.常用方法10.2.2容器JPanel方

法说

明StringgetText()返回JLabel中的标题voidsetText(Stringtxt)设定JLabel中的标题为txtvoidsetToolTipText(Stringtxt);设定当光标落在JLabel上时显示的文字为txtint

getHorizontalAlignment()返回JLabel中的水平对齐方式voidsetHorizontalAlignment(intalign)设定对齐方式为align。其中align的值为LEFT、RIGHT、CENTER分别代表左对齐、右对齐、居中。int

getHorizontalTextPosition()返回标题相对于图标的水平位置voidsetHorizontalTextPosition(int

pos)设定标题相对于图标的水平位置。pos的值为LEFT、RIGHT、CENTERint

getVerticalAlignment()返回JLabel中的垂直对齐方式voidsetVerticalAlignment(int

valign)设定JLabel中的垂直对齐方式。valign的值为TOP、

CENTER、BOTTOM。int

getVerticalTextPosition()返回标题相对于图标的垂直位置voidsetVerticalTextPosition(intpos)设定标题相对于图标的垂直位置。pos的值为TOP、

CENTER、BOTTOM。IcongetIcon()返回JLabel中的图标voidsetIcon(Icon,icon)设定JLabel中的图标为icoint

getIconTextGap()返回JLabel中的标题与图标的距离(像素)voidsetIconTextGap(intgap)设定JLabel中的标题与图标的距离(像素)3.常用事件10.3.2命令按钮JButton

1.构造函数格式:JButton()功能:建立一个没有标题、没有图标的JButton对象。格式:JButton(Stringtxt)功能:建立一个标题为txt的JButton对象,没有图标。格式:JButton(Icon

ico)功能:建立一个JButton对象,图标为ico,没有标题。格式:JButton(Stringtxt,Iconico)功能:建立一个JButton对象,标题为txt,图标为ico。2.常用方法3.常用事件与按钮JButton关联的事件一般是:ActionEvent、MouseEvent、MouseMontionEvent、KeyEvent、FocusEvent、ComponentEvent。通常处理ActionEvent就可以了。10.3.3单行文本编辑框JTextField

1.构造函数格式:JTextField()功能:建立初始文字为空的JTextField对象。格式:JTextField(Stringtxt)

功能:建一个初始文字为txt的JTextField对象。格式:JTextField(int

len)功能:建立一个列数为len个字符的JTextField对象。格式:JTextField(Stringtxt,int

len)功能:建立一个初始文字为txt、列数为len个字符的JTextField对象。2.常用方法方

法说

明StringgetText()返回文本编辑框JTextField中的字符串voidsetText(Stringtxt)设定文本编辑框JTextField中的显示字符串为txtvoidsetToolTipText(Stringtxt);设定当光标落在JTextField上时显示的提示信息为txtint

getColumns()回文本编辑框JTextField中的列数voidsetColumns(int

len)设定文本编辑框JTextField中的列数为lenint

getHorizontalAlignment()返回文本编辑框JTextField中的水平对齐方式voidsetHorizontalAlignment(intalign)设定文本编辑框JTextField中的水平对齐方式。align的值为:JTextField.LEFT、JTextField.CENTER、JTextField.RIGHT、JTextField.LEADING、JTextField.TRAILING10.3.4

多行文本编辑框JTextArea

1.构造函数格式:JTextArea()功能:建立一个初始文字为空的JTextArea对象。格式:JTextArea(Stringtxt)功能:建立一个初始文字为txt的JTextArea对象。格式:JTextArea(int

rows,intcols)功能:建立一个rows行、cols列的JTextArea对象。格式:JTextArea(Stringtxt,int

rows,intcols)功能:建立一个初始文字为txt、rows行、cols列的JTextArea对象。2.常用方法3.常用事件与多行文本编辑框JTextArea关联的事件一般是:TextEvent、MouseEvent、MouseMontionEvent、KeyEvent、FocusEvent、ComponentEvent。10.3.4多行文本编辑框JTextArea方

法说

明StringgetText()返回文本编辑框JTextArea中的文本voidsetText(Stringtxt)设定文本编辑框JTextArea中的显示文本为txtvoidsetToolTipText(Stringtxt);设定当光标落在JTextArea上时显示的提示信息为txtint

getColumns()返回文本编辑框JTextArea中的列数voidsetColumns(intcols)设定文本编辑框JTextArea中的列数为colsint

getRows()返回文本编辑框JTextArea中的行数voidsetRows(introws)设定文本编辑框JTextArea中的行数为rowsvoidappend(Stringtxt)将字符串txt添加到文本编辑框JTextArea中的最后面voidinsert(String

txt,intpos)将字符串txt插入到文本编辑框JTextArea中的第pos位置处voidreplaceRange(String

txt,int

start,intend)将文本编辑框JTextArea中的从start到end之间的字符用txt代替voidsetLineWrap(booleanwrap)设定文字是否可以环绕boolean

getLineWrap()判断文字是否可以环绕int

getTabSize(返回Tab键的大小voidsetTabSize(intsize)设定Tab键的大小JTextArea类的几个常用的方法10.3.5口令输入框JPasswordField

1.构造函数格式:JPasswordField()功能:建立一个初始文字为空的JPasswordField对象。格式:JPasswordField(Stringtxt)功能:建立一个初始文字为txt的JPasswordField对象。格式:JPasswordField(int

len)功能:建立一个列数为len个字符的JPasswordField对象。格式:JPasswordField(Stringtxt,int

len)功能:建立一个初始文字为txt、列数为len个字符的JPasswordField对象。2.常用方法方

法说

明char[]getPassword()返回JPasswordField中的字符voidsetEchoChar(charc)设定用字符c来作为密码显示的字符。例如:若jpf.setEchoChar(‘q’);则输入的字符,将显示为q。voidsetToolTipText(Stringtxt);设定当光标落在JPasswordField上时显示的提示信息为txtchargetEchoChar()返回密码显示的字符boolean

echoCharIsSet()判断是否设置了密码显示字符3.常用事件10.3.6开关按钮JToggleButton

1.构造函数格式:JToggleButton()

功能:建立一个无标题、无图片的开关按钮。格式:JToggleButton(Stringtxt)

功能:建立一个标题为txt但没有图片的开关按钮。格式:JToggleButton(Icon

ico)

功能:建立一个图片为ico但没有标题的开关按钮。格式:JToggleButton(Stringtxt,Iconico)

功能:建立一个标题为txt、图片为ico的开关按钮。格式:JToggleButton(String

txt,booleanstat)

功能:建立一个标题为txt但没有图片的开关按钮,其初始选择状态由stat指定。格式:JToggleButton(Icon

ico,booleanstat)

功能:建立一个图片为ico但没有标题的开关按钮,其初始选择状态由stat指定。格式:JToggleButton(Stringtxt,Iconico,booleanstat)

功能:建立一个标题为txt、图片为ico的开关按钮,其初始选择状态由stat指定。10.3.6开关按钮JToggleButton方

法说

明StringgetText()返回按钮JToggleButton中的标题。voidsetText(Stringtxt)设定按钮JToggleButton中的标题为txtvoidsetToolTipText(Stringtxt);设定当光标落在JToggleButton上时显示的提示信息为txtboolean

isSelected()判断按钮是否处于选中状态voidsetSelected(booleanstat)设定按钮JToggleButton的选择状态为statIcongetIcon()返回JToggleButton中的图标voidsetIcon(Icon,icon)设定JToggleButton中的图标为icoint

getHorizontalAlignment()返回JToggleButton中的水平对齐方式voidsetHorizontalAlignment(intalign)设定对齐方式为align。其中align的值为LEFT、RIGHT、CENTER分别代表左对齐、右对齐、居中。int

getHorizontalTextPosition()返回标题相对于图标的水平位置voidsetHorizontalTextPosition(int

pos)设定标题相对于图标的水平位置。pos的值为LEFT、RIGHT、CENTERint

getVerticalAlignment()返回JToggleButton中的垂直对齐方式voidsetVerticalAlignment(int

valign)设定JToggleButton中的垂直对齐方式。valign的值为TOP、

CENTER、BOTTOM。int

getVerticalTextPosition()返回标题相对于图标的垂直位置voidsetVerticalTextPosition(intpos)设定标题相对于图标的垂直位置。pos的值为TOP、

CENTER、BOTTOM。IcongetDisabledIcon()返回JToggleButton中不可用时的图标voidsetDisabledIcon(Iconicon)设定JToggleButton中不可用时的图标为icoIcongetPressedIcon()返回JToggleButton中被按下时的图标voidsetPressedIcon(Iconicon)设定JToggleButton中被按下时的图标为ico10.3.6开关按钮JToggleButton3.常用事件与开关按钮JToggleButton关联的事件一般是:ActionEvent、MouseEvent、MouseMontionEvent、KeyEvent、FocusEvent、ComponentEvent。通常处理ActionEvent就可以了。例如,在程序中可以用一个JToggleButton按钮表示“打开”、“关闭”两种操作,在该按钮的ActionEvent事件中我们可以编写如下程序:

if(jtogglebutton.isSelected()) //如果按钮处于选中状态

{ jtogglebutton.setText(“打开”); //将按钮的标题改为“打开”

…….. //处理“打开”时要做的程序代码

} else //如果按钮处于未选状态

{ jtogglebutton.setText(“关闭”); //将按钮的标题改为“关闭”

…….. //处理“关闭”时要做的程序代码

}10.3.7复选按钮JCheckBox

1.构造函数格式:JCheckBox()功能:建立一个无标题、无图片的复选按钮。格式:JCheckBox(Stringtxt)

功能:建立一个标题为txt但没有图片的复选按钮。格式:JCheckBox(Iconico)功能:建立一个图片为ico但没有标题的复选按钮。格式:JCheckBox(Stringtxt,Iconico)功能:建立一个标题为txt、图片为ico的复选按钮。格式:JCheckBox(Stringtxt,booleanstat)功能:建立一个标题为txt但没有图片的复选按钮,其初始选择状态由stat指定。格式:JCheckBox(Iconico,booleanstat)功能:建立一个图片为ico但没有标题的复选按钮,其初始选择状态由stat指定。格式:CheckBox(Stringtxt,Iconico,booleanstat)功能:建立一个标题为txt、图片为ico的复选按钮,其初始选择状态由stat指定。2.常用方法复选按钮JCheckBox的常用方法和开关按钮JToggleButton相同3.常用事件与复选按钮JCheckBox关联的事件一般是:ItemEvent、MouseEvent、MouseMontionEvent、KeyEvent、FocusEvent、ComponentEvent。10.3.8单选按钮JRadioButton

1.构造函数格式:JRadioButton()

功能:建立一个无标题、无图片的单选按钮。格式:JRadioButton(Stringtxt)

功能:建立一个标题为txt但没有图片的单选按钮。格式:JRadioButton(Iconico)功能:建立一个图片为ico但没有标题的单选按钮。格式:JRadioButton(Stringtxt,Iconico)功能:建立一个标题为txt、图片为ico的单选按钮。格式:JRadioButton(Stringtxt,booleanstat)功能:建立一个标题为txt但没有图片的单选按钮,其初始选择状态由stat指定。格式:JRadioButton(Iconico,booleanstat)功能:建立一个图片为ico但没有标题的单选按钮,其初始选择状态由stat指定。格式:JRadioButton(Stringtxt,Iconico,booleanstat)功能:建立一个标题为txt、图片为ico的单选按钮,其初始选择状态由stat指定。2.常用方法单选按钮JRadioButton的常用方法和开关按钮JToggleButton相同3.常用事件与单选按钮JRadioButton关联的事件一般是:ItemEvent、MouseEvent、MouseMontionEvent、KeyEvent、FocusEvent、ComponentEvent。10.3.9按钮组ButtonGroup

1.

构造函数格式:ButtonGroup()功能:建立一个按钮组ButtonGroup2.常用方法表列出了按钮组ButtonGroup类的几个常用的方法。方

法说

明voidadd(AbstractButtonb)将按钮b加到组中int

getButtonCount()返回组中按钮数目voidremove(AbstractButtonb)从组中删除按钮bEnumerationgetElements()返回组中所有按钮。枚举类型Enumeration是java.util中定义的一中数据类型。10.3.10列表框JList

1.构造函数格式:JList()功能:建立一个单选的JList对象。格式:JList(Object[]data)功能:建立一个单选且初始数据为data的JList对象。例如:String[]stu={"王小平","刘国军","吴芬","李建军"};Listjl=newJList(stu);这就创建了一个列表框,其初始数据有4项,分别为:"王小平"、"刘国军"、"吴芬"、"李建军"。2.常用方法

3.常用事件与JList关联的事件一般是:ActionEvent、ItemEvent、MouseMontionEvent、MouseEvent、KeyEvent、FocusEvent、ComponentEvent。在JList类中,只提供了获取被选择项信息的有关方法,没有提供获取未选项信息的方法,增加、删除的方法也没有,所以使用起来不太方便。10.3.11下拉列表框JComboBox

1.构造函数格式:JComboBox()功能:建立一个JComboBox对象。格式:JComboBox(Object[]itm)功能:建立一个JComboBox对象,其初始项目由数组itm指定。例如:String[]stu={“王小平”,”刘国军”,”吴芬”,”李建军”};

JComboBox

jcb=newJComboBox(stu);这就创建了一个下拉列表框jcb,其初始数据有4项,分别为:“王小平”,”刘国军”,”吴芬”,”李建军”。2.常用方法

3.常用事件与下拉列表框JComboBox关联的事件一般是:ItemEvent、MouseMontionEvent、MouseEvent、KeyEvent、FocusEvent、ComponentEvent。例如:String[]stu={"王小平","刘国军","吴芬","李建军"};JComboBox

jcb=newJComboBox(stu);要获得下拉列表框jcb中当前选择的项,可以这样实现:Stringitm;itm=(String)jcb.getSelectedItem();itm是String类型,这里必须将getSelectedItem()得到的值进行强制类型转换。10.3.11下拉列表框JComboBox下拉列表框JComboBox的常用方法方

法说

明voidaddItem(Object

itm)在JComboBox中添加一个项目itmvoidinsertItemAt(Object

itm,int

idx)插入一个项目itm到idx位置voidremoveItemAt(int

idx)删除第idx项voidremoveItem(Object

itm)删除名为itm的项目voidremoveAllItems()删除JComboBox中的所有项ObjectgetItemAt(int

idx)返回第idx项的名称int

getItemCount()返回JComboBox中的项目总数int

getSelectedIndex()返回JComboBox中的被选择的项目的索引。-1表示没有项目被选。ObjectgetSelectedItem()返回JComboBox中的被选择的项目的名称voidsetSelectedIndex(int

idx)选择第idx项voidsetSelectedItem(Object

itm)选择名为itm的项。10.4.1菜单Swing中的菜单和AWT中菜单基本类似,每个菜单组件包括一个菜单条,称为JMenuBar。每个JMenuBar由若干个菜单项组成,称为JMenu。每个JMenu又由若干个子菜单项组成,称为JMenuItem。JMenuBar、JMenu、JMenuItem是构成菜单的三个基本要素。如图10.4.1菜单1.JMenuBar每个窗口都可以有一个菜单条JMenuBar(最多一个),JMenuBar的类层次关系为:java.lang.Object|+--java.awt.Component|+--java.awt.Container|+--javax.swing.JComponent|+--javax.swing.JMenuBar格式:JMenuBar()功能:创建一个JMenuBar对象。方

法说

明JMenu

add(JMenumenu)添加菜单项menu到菜单条JMenuBar中JMenu

getMenu(int

idx)返回指定位置idx上的JMenu对象int

getMenuCount()返回菜单条JMenuBar中的菜单项总数10.4.1菜单2.JMenu每个菜单条JMenuBar都有若干个主菜单JMenu,JMenu是JMenuItem的扩展,JMenu的类层次关系为:java.lang.Object|+--java.awt.Component|+--java.awt.Container|+--javax.swing.JComponent|+--javax.swing.AbstractButton|+--javax.swing.JMenuItem|+--javax.swing.JMenu(1)构造函数格式:JMenu()功能:创建一个Menu对象。格式:JMenu(Stringtitle)功能:创建一个标题为title的Menu对象。10.4.1菜单方

法说

明JMenuItem

add(Stringtxt)添加一个标题为txt的JMenuItem到菜单JMenu中JMenuItem

add(JMenuItem

mitm)添加指定的JMenuItem对象mitm到菜单JMenu中voidremove(int

idx)从菜单中删除指定位置idx上的菜单项voidremoveAll()从菜单中删除所有的MenuItemvoidaddSeparator()添加一条分隔线voidinsertSeparator(int

idx)在指定位置idx上插入一条分隔线JMenuItem

getItem(int

idx)返回指定位置idx上的JMenuItemint

getItemCount()返回JMenu中的菜单项JMenuItem总数JMenuItem

insert(JMenuItem

itm,int

idx)在指定位置idx插入一个JMenuItem对象itmvoidinsert(String

txt,int

idx)在指定位置idx插入标题为txt的JMenuItem对象JPopupMenu

getPopupMenu()返回与该菜单项关联的弹出式菜单,若没有,则创建一个。boolean

isPopupMenuVisible()判断与该该菜单项关联的弹出式菜单是否可见(2)常用方法,见表10.4.1菜单3.JMenuItem每个JMenu一般有若干个JMenuItem,JMenuItem的类层次关系为:java.lang.Object|+--java.awt.Component|+--java.awt.Container|+--javax.swing.JComponent|+--javax.swing.AbstractButton|+--javax.swing.JMenuItem(1)构造函数:格式:JMenuItem()功能:创建一个JMenuItem对象。格式:JMenuItem(Stringtitle)功能:创建一个标题为title的JMenuItem对象。格式:JMenuItem(Icon

ico)功能:创建一个图片为ico的JMenuItem对象。格式:JMenuItem(Stringtitle,Iconico)功能:创建一个标题为title、图片为ico的JMenuItem对象。10.4.1菜单(2)常用方法方

法说

明StringgetText()返回JMenuItem的标题voidsetText(Stringlab)设定JMenuItem的标题为labvoidsetEnabled(booleanb)设定JMenuItem是否可用。true:可用;false:不可用boolean

isEnabled()判断JMenuItem是否可用。true:可用;false:不可用voidsetAccelerator(KeyStrokekey)指定JMenuItem上的快捷键。用法见下面的例题10.7KeyStroke

getAccelerator()返回JMenuItem上的快捷键4.JCheckBoxMenuItem

JCheckBoxMenuItem和AWT中的CheckboxMenuItem一样,是一种具有选中和非选中两种状态的菜单项,单击此菜单项可以在这两种状态之间进行切换。选中时,在菜单项前有一个标记“”。

10.4.1菜单JCheckBoxMenuItem的类层次关系为:java.lang.Object|+--java.awt.Component|+--java.awt.Container|+--javax.swing.JComponent|+--javax.swing.AbstractButton|+--javax.swing.JMenuItem|+--javax.swing.JCheckBoxMenuItem(1)JCheckBoxMenuItem的构造函数常用的有六个:JCheckBoxMenuItem()功能:创建一个JCheckBoxMenuItem对象。JCheckBoxMenuItem(Stringtitle)功能:创建一个标题为title的JCheckBoxMenuItem对象。JCheckBoxMenuItem(Stringtitle,booleanstate)功能:创建一个标题为title、选中状态为state的JCheckBoxMenuItem对象。State的值为true时,表示选中该菜单项,在菜单项前加一个标记“”。

10.4.1菜单JCheckBoxMenuItem(Iconico)功能:创建一个图片为ico的JCheckBoxMenuItem对象。JCheckBoxMenuItem(Stringtitle,Icon

ico)功能:创建一个标题为title、图片为ico的JCheckBoxMenuItem对象。JCheckBoxMenuItem(Stringtitle,Icon

ico,booleanstate)功能:创建一个标题为title、图片为ico、选中状态为state的JCheckBoxMenuItem对象。(2)常用方法方

法说

明boolean

getState()判断该菜单项是否被选中voidsetState(booleanstate)设定该菜单项的选中状态为state5.常用事件与菜单关联的事件一般是:ActionEvent、ItemEvent。在ActionEvent中有一个方法getActionCommand(),返回所选的菜单项名。例如:if(e.getActionCommand()=="打开"){……}10.4.3工具栏JToolBar

在java中,使用工具栏的窗口,其布局管理器一般设为BorderLayout,以便可以随意拖到窗口的四周工具栏JToolBar的类层次关系为:java.lang.Object|+--java.awt.Component|+--java.awt.Container|+--javax.swing.JComponent|+--javax.swing.JToolBar

1.构造函数格式:JToolBar()功能:建立一个按钮排列方向为水平的JToolBar对象。格式:JToolBar(intdirect)功能:建立一个按钮排列方向为direct的JToolBar对象。其中direct的值为HORIZONTAL或VERTICAL,表示水平或垂直。10.4.2弹出式菜单JPopupMenu

JPopupMenu的创建与前面的JMenu几乎一样,而且就可以用已有的JMenu来作为JPopupMenu。JPopupMenu的类层次关系为:java.lang.Object|+--java.awt.Component|+--java.awt.Container|+--javax.swing.JComponent|+--javax.swing.JPopupMenu(1)构造函数格式:JPopupMenu()功能:创建一个Menu对象。格式:JPopupMenu(Stringtitle)功能:创建一个标题为title的JPopupMenu对象。10.4.3工具栏JToolBar格式:JToolBar(Stringtxt)功能:建立一个标题为txt、按钮排列方向为水平的JToolBar对象。标题是在工具栏变成一个窗口时显示的。格式:JToolBar(Stringtxt,intdirect)功能:建立一个标题为txt、按钮排列方向为direct的JToolBar对象。2.常用方法方

法说

明JButton

add(JButton

btn)在工具栏JToolBar中添加一个按钮voidaddSeparator()添加一条分隔线ComponentgetComponentAtIndex(int

idx)返回第idx位置的组件名int

getComponentIndex(Componentc)返回组件名为c的索引值int

getOrientation()返回工具栏的方向,HORIZONTAL或VERTICALvoidsetOrientation(intdirect)设置工具栏的方向directvoidsetMargin(Insetsm)设置工具栏的边界与它的按钮之间的间隔。例如:jToolBar.setMargin(newInsets(1,2,3,4))表示顶部间隔1、左边间隔2、底部间隔3、右边间隔4。voidsetFloatable(booleanb)设定工具栏是否可以被移动10.5.1滚动容器JScrollPane

Java在Swing中,是通过滚动容器JScrollPane等组件实现滚动功能的。滚动容器JScrollPane的类层次关系为:java.lang.Object|+--java.awt.Component|+--java.awt.Container|+--javax.swing.JComponent|+--javax.swing.JScrollPane1.构造函数格式:JScrollPane()功能:建立一个JScrollPane对象,根据需要自动提供水平和垂直滚动条。格式:JScrollPane(Componentcomp)功能:建立一个JScrollPane对象显示组件comp,根据组件comp中的显示内容的大小,自动提供水平和垂直滚动条。10.5.1滚动容器JScrollPane格式:JScrollPane(Componentcomp,int

vsb,int

hsb)功能:建立一个JScrollPane对象显示组件comp,其垂直滚动属性由vsb指定,水平滚动属性由hsb指定。其中hsb的值为:JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED:根据需要提供水平滚动条JScrollPane.HORIZONTAL_SCROLLBAR_NEVER:不提供水平滚动条JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS:总是提供水平滚动条vsb的值为:JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED:根据需要提供垂直滚动条JScrollPane.VERTICAL_SCROLLBAR_NEVER:不提供垂直滚动条JScrollPane.VERTICAL_SCROLLBAR_ALWAYS:总是提供垂直滚动条格式:JScrollPane(int

vsb,int

hsb)功能:建立一个JScrollPane对象,其垂直滚动属性由vsb指定,水平滚动属性由hsb指定。10.5.1滚动容器JScrollPane2.常用方法方

法说

明JScrollBar

createHorizontalScrollBar()创建水平滚动条JScrollBar

createVerticalScrollBar()创建垂直滚动条JScrollBar

getHorizontalScrollBar()返回水平滚动条JScrollBar

getVerticalScrollBar()返回垂直滚动条int

getHorizontalScrollBarPolicy()返回水平滚动策略,值为JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED、JScrollPane.HORIZONTAL_SCROLLBAR_NEVER、JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS:int

getVerticalScrollBarPolicy()返回垂直滚动策略,值为JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED、JScrollPane.VERTICAL_SCROLLBAR_NEVER、JScrollPane.VERTICAL_SCROLLBAR_ALWAYSvoidsetHorizontalScrollBarPolicy(int

hsb)设置水平滚动策略为hsb。voidsetVerticalScrollBarPolicy(int?policy)设置垂直滚动策略为vsb。3.常用事件与滚动容器JScrollPane关联的事件一般是:MouseEvent、MouseMontionEvent、KeyEvent、FocusEvent、ComponentEvent、ContainerEvent。10.5.2选项卡容器JTabbedPane

选项卡容器JTabbedPane可以用来存放许多标签页,而每一张标签页又可以存放不同的容器或组件,用户只要点击每一张标签页上的标签,便可切换至不同的标签页。选项卡容器JTabbedPane的外观如图选项卡容器JTabbedPane的类层次关系为:java.lang.Object|+--java.awt.Component|+--java.awt.Container|+--javax.swing.JComponent|+--javax.swing.JTabbedPane

10.5.2选项卡容器JTabbedPane1.构造函数格式:JTabbedPane()功能:建立一个JTabbedPane对象,标签页上的标签在顶部排列。格式:JTabbedPane(intalign)功能:建立一个JTabbedPane对象,标签的排列位置为align。align的值为:

JTabbedPane.TOP,顶部;

JTabbedPane.BOTTOM,底部;

JTabbedPane.LEFT,左边;

JTabbedPane.RIGHT,右边。2.常用方法

3.常用事件与选项卡容器JTabbedPane关联的事件一般是:ChangeEvent,该事件实现了接口ChangeListener,该接口提供了一个方法stateChanged(ChangeEvente),当选择某个标签页时将调用该方法。事件ChangeEvent在包importjavax.swing.event中定义。10.5.3进度条JProgressBar

进度条JProgressBar的类层次关系为:java.lang.Object|+--java.awt.Component|+--java.awt.Container|+--javax.swing.JComponent|+--javax.swing.JProgressBar1.构造函数格式:JProgressBar()功能:建立一个水平方向的进度条JProgressBar对象,其变化范围是0到100。格式:JProgressBar(intdirect)功能:建立一个方向为direct的进度条JProgressBar对象,其变化范围是0到100。10.5.3进度条JProgressBar格式:JProgressBar(int

min,intmax)功能:建立一个水平方向的进度条JProgressBar对象,其范围是min到max。格式:JProgressBar(intdirect,int

min,intmax)功能:建一个方向为direct的进度条JProgressBar对象,其范围是min到max。2.常用方法方

法说

明int

getMaximum()返回进度条的最大值int

getMaximum()返回进度条的最小值int

getOrientation()返回进度条的方向(JProgressBar.VERTICAL或JProgressBar.HORIZONTAL)doublegetPercentComplete()返回进度条的完成百分比,返回值在0.00到1.00之间StringgetString()返回进度条的标题int

getValue()返回进度条的当前值boolean

isStringPainted()判断进度条是否显示标题voidsetMaximum(intmax)设置进度条的最大值。voidsetMinimum(intmin)设置进度条的最小值。voidsetOrientation(intdirect)

设置进度条的方向(JProgressBar.VERTICAL或JProgressBar.HORIZONTAL)voidsetString(Stringtxt)设置进度条的标题voidsetValue(intn)设置进度条的当前值voidsetStringPainted(booleanb)设定是否允许在进度条上显示标题10.5.3进度条JProgressBar3.常用事件

多数情况下,进度条JProgressBar仅仅是显示某一过程的进度,因此不需要给进度条JProgressBar注册监听器。【例10.12】进度条JProgressBar的使用方法,运行界面如图所示。

importjava.awt.event.*;importjava.awt.*;importjavax.swing.*;publicclassJProgressBarTest

{ JFramef=newJFrame("进度条JProgressBar的用法");

JButtonok=newJButton("开始");

JProgressBar

jpb=newJProgressBar(0,200); //定义一个进度条对象,范围是0到200

JLabel

disp=newJLabel("当前位置是"); Fontft=newFont("Serif",Font.BOLD,18); voidgo(){ jpb.setStringPainted(true);

jpb.setBorderPainted(false);

jpb.setString("进度条正在显示...."); //定义进度条上显示的文字

f.getContentPane().add("North",ok); f.getContentPane().add("South",jpb); f.getContentPane().add("Center",disp); f.setSize(300,250); f.setVisible(true); ok.addActionListener(newButtonH()); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

jpb.setFont(ft); ok.setFont(ft);

disp.setFont(ft); } classButtonHimplementsActionListener

{ publicvoidactionPerformed(ActionEvente)

{ inti,n=0; doubled=0; Strings; for(i=0;i<=200;i++)

for(i=0;i<=200;i++) { jpb.setValue(i); //改变进度条的当前值

d=jpb.getPercentComplete(); //获取完成百分比

s="当前位置是"+i+"已完成"+d*100+"%"; disp.setText(s); }}}publicstaticvoidmain(String[]arg){ JProgressBarTestthat=newJProgressBarTest(); that.go();}}10.5.4滑动条JSlider

滑动条JSlider的类层次关系为:java.lang.Object|+--java.awt.Component|+--java.awt.Container|+--javax.swing.JComponent|+--javax.swing.JSlider1.构造函数格式:JSlider()功能:建立一个水平方向的滑动条JSlider对象,其变化范围是0到100,初始值为50。格式:JSlider(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论