Java实用教程第18讲-java-swing课件_第1页
Java实用教程第18讲-java-swing课件_第2页
Java实用教程第18讲-java-swing课件_第3页
Java实用教程第18讲-java-swing课件_第4页
Java实用教程第18讲-java-swing课件_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

Java实用教程第18讲-java-swing课件1Java实用教程第18讲-java-swing课件218.1.2显示框架

drawString(Strings,intx,inty)从参数x、y指定的坐标位置处,从左向右绘制参数s指定的字符串。drawChars(chardata[],intoffset,intlength,intx,inty)绘制data数组中的部分字符,length指定数组中要连续绘制的字符的个数,offset是首字符在数组中的位置。18.1.2显示框架

drawString(String318.2容器

容器是用来盛装其它GUI组件的GUI组件,AWT中的容器类有Window、Panel、Applet、Frame、dialog等,而Swing容器类有JFrame、JWindow、JDialog、JApplet、JPanel等。本节介绍几种常用的Swing容器。18.2容器

容器是用来盛装其它GUI组件的GUI组件,A418.2.1顶层容器

Swing中的JFrame、JDialog、JApplet和JWindow直接继承了AWT组件,它们是重量级的,被称为顶层容器。(1)JFrame继承自AWT中的Frame类,通常作为主窗体使用。(2)JDialog用于创建对话框,对话框不能单独存在,必须借助于窗体。(3)JApplet可作为Java小应用程序的窗体,被嵌入到网页中运行。(4)JWindow与JFrame类似,所不同的是JWindow没有用于默认关闭操作或是菜单栏的属性。18.2.1顶层容器

Swing中的JFrame、JDia518.2.2中间层容器

有些容器不能直接显示到电脑屏幕上,必须放置到顶层容器或其它容器中,它们存在的目的是放置各种组件。常用的中间层容器有JPanel、JScrollPane、JSplitPane、JToolBar、JInternalFrame、JLayeredPane、JRootPane、JTabbedPane18.2.2中间层容器

有些容器不能直接显示到电脑屏幕上,6(1)JPanelJPanel(面板)常用来放置其它轻量级组件。默认状态下,它不绘制任何东西,可以很容易的为其设置边框,也可以嵌套使用。(2)JScrollPaneJScrollPane(滚动面板)JScrollPane包括九个部分:一个中心显示区、四个角和四条边(3)JSplitPaneJSplitPane(分割面板)是一个可以被分成两个显示区域的面板,分割方式可以是水平分割,也可以是垂直分割。如果设置了动态拖拽功能,则拖动分割线时两边组件会随着拖拽动态改变大小。通常先把组件放到JScrollPane中,再把JScrollPane放到JSplitPane中,这样每个窗口都可以拖动滚动条看到组件的全部内容。(1)JPanel(2)JScrollPane(3)JSpl7(4)JTabbedPaneJTabbedPane(页签面板)可以在窗体上显示多个控件。可以将不同类别的控件放到不同的Tab页上,然后通过需要点击相应的Tab页。可以通过

setTabComponentAt方法将控件放到Tab上。(5)JLayeredPane(6)JInternalFrameJInternalFrame(内部窗体)具有最大化、最小化、关闭、加入菜单等功能。JInternalFrame是轻量级组件,不能单独显示为了方便管理,一般会将JInternalFrame加入JDesktopPane中,JDesktopPane是一种特殊的分层面板,是JLayeredPane子类,用来建立虚拟桌面(Vitual

Desktop).它可以显示并管理众多JInternalFrame之间的层次关系。(4)JTabbedPane(5)JLayeredPane(8(7)JOptionPaneJOptionPane(选择面板)能够方便地弹出满足用户要求的各种类型对话框。此类中包含showXxxDialog()方法:1)showConfirmDialog()方法:显示确认对话框;2)showInputDialog()方法:显示输入对话框;3)showMessageDialog()方法:显示消息对话框;4)showOptionDialog()方法:显示选择对话框。(7)JOptionPane918.3布局管理

Java为了实现跨平台的特性并且获得动态的布局效果,采用布局管理器对容器中的组件进行布局。Java定义了多种布局管理器,通过布局管理器之间的组合,能够设计出复杂的界面,而且在不同操作系统平台上都能够有一致的显示界面。18.3布局管理

Java为了实现跨平台的特性并且获得动1018.3.1BorderLayout

BorderLayout是JFrame的默认布局,可以直接通过add()方法为其添加组件,默认情况下组件被放在JFrame的中心位置,并且组件向四周扩展,占满整个JFrame,BorderLayout的特点:(1)把容器分为五个方位:东、西、南、北、中,组件按照方位被添加到容器。(2)组件的大小占满整个所属方位,组件的大小随着容器的变化而变化。(3)如果不指定方位,组件默认被添加到容器的中心位置,并且占满整个容器。18.3.1BorderLayout

BorderLayo1118.3.2FlowLayout

FlowLayout是JPanel的默认布局方式。使用FlowLayout布局方式的容器中,组件按照加入的先后顺序按照设置的对齐方式(居中、左对齐、右对齐)从左向右排列,一行排满后再从下一行开始继续排列。在这种布局方式中,组件的大小不会随着容器大小的变化而改变,其位置可能会发生改变。18.3.2FlowLayout

FlowLayout是J1218.3.3GirdLayout

GridLayout是把容器分成M×N个网格,M是行数,N是列数,M和N的值可以在创建GridLayout的对象时确定。组件按照从左到右,从上到下的顺序放入容器,容器大小改变时,组件的相对位置不变,大小会改变。18.3.3GirdLayout

GridLayout是把1318.3.4CardLayout

CardLayout是把容器分成多张卡片,每个组件占用一张卡片,组件之间的关系就像一副牌,叠在一起。初始时显示第一张卡片,通过CardLayout类提供的first()方法可以切换到第一张卡片,last()方法可以切换到最后一张卡片,next()方法可以切换到下一张卡片18.3.4CardLayout

CardLayout是把1418.3.5BoxLayout

BoxLayout

可以通过参数

X_AXIS、Y_AXIS把控件进行水平或者垂直排列布局,X_AXIS

表示水平排列,Y_AXIS表示垂直排列。BoxLayout

的构造函数有两个参数,一个参数定义使用该

BoxLayout

的容器,另一个参数是指定

BoxLayout

是采用水平还是垂直排列。当BoxLayout进行布局时,假如布局的整个水平或者垂直空间的尺寸不能放下所有控件,那么BoxLayout会试图调整各个控件的大小来填充整个布局的水平或者垂直空间。BoxLayout往往和Box这个容器结合在一起使用Box类的静态方法createHorizontalBox()可以获得一个水平存放组件的Box对象。静态方法createVerticalBox()可以获得一个可以竖直存放组件的Box对象。18.3.5BoxLayout

BoxLayout可以通1518.3.6绝对布局

每个组件(包括容器)都是一个矩形区域,该矩形区域的左上角为坐标原点(0,0),x轴向右增大,y轴向下增大使用绝对布局的操作步骤:(1)首先利用setLayout(null)语句将容器的布局设置为null布局(空布局);(2)再调用组件的setBounds(intx,inty,intwidth,intheight)方法,设置组件在容器中的大小和位置,单位均为像素。18.3.6绝对布局

每个组件(包括容器)都是一个矩形区域1618.4基本组件

因为所有轻量级组件类都继承于JComponent,而JComponent类又是Container类的子类,因此,所有的Swing组件都可作为容器使用。本节只介绍常用的几种基本组件。18.4基本组件

因为所有轻量级组件类都继承于JCompo1718.4.1AbstractButton

Swing中许多类型的按钮,包括复选框、单选按钮等,都是从AbstractButton类继承而来的。可以使用setBorder()方法为组件添加边框,还可以把单选按钮添加到按钮组中。18.4.1AbstractButton

Swing中许多1818.4.2菜单

下拉式菜单也是从AbstractButton继承而来,而弹出式菜单继承于JComponent类。在使用下拉式菜单时,必须为容器设置菜单条,然后把菜单添加到菜单条上,把菜单项添加到菜单上。在使用弹出式菜单时,必须结合鼠标事件显示。18.4.2菜单

下拉式菜单也是从AbstractButt1918.4.3标签和文本编辑组件

JLabel(标签)用于显示文本或图像。可以通过设置垂直和水平对齐方式,指定标签显示区中标签内容在何处对齐。默认情况下,只显示文本的标签是开始边对齐,而只显示图像的标签则水平居中对齐。18.4.3标签和文本编辑组件

JLabel(标签)用于显2018.4.4组合框和列表框

用户可以从JComboBox(组合框,也称下拉列表)中列出的一组元素中选择一个,而且只能选一个。而JList(列表框)与组合框完全不同,可以进行多重选择,并且其在屏幕上可以占据固定行数的空间,JList不实现直接滚动。要创建一个滚动的列表,要将它添加到JScrollPane中。18.4.4组合框和列表框

用户可以从JComboBox(2118.4.5滑块和进度条

通过JSlider(滑块)的前后移动来控制数据的输入有时能使某种操作更直观,如音量的控制。JProgressBar(进度条)能够动态的显示的数据的状态。18.4.6选择框JFileChooser(文件对话框)支持打开和保存文件,使文件操作更方便,但要真正打开和保存文件,还要结合I/O操作。JColorChooser(颜色选择对话框)是Java中已经定义好的颜色选择器,通过它可以很方便的得到各种颜色。18.4.5滑块和进度条

通过JSlider(滑块)的前后2218.4.7表格和树

JTable(表格)是数据的视图。JTree

(树)一个

JTree

对象只是提供了数据的视图,

通过查询其数据模型可获得数据。树中显示的每一行包含一项数据,称之为节点(

node

)。每颗树有一个根节点(

rootnode

),其他节点都是它的子孙。分支节点可以有任意多个孩子。18.4.7表格和树

JTable(表格)是数据的视图。2318.5本讲小结

本讲首先讲述了Swing的基础知识,然后对容器、布局管理进行了介绍,最后讲述了几种常用的组件。18.5本讲小结

本讲首先讲述了Swing的基础知识,然后24讲后练习

1、编写程序实现下面的界面。讲后练习

1、编写程序实现下面的界面。25Java实用教程第18讲-java-swing课件26Java实用教程第18讲-java-swing课件2718.1.2显示框架

drawString(Strings,intx,inty)从参数x、y指定的坐标位置处,从左向右绘制参数s指定的字符串。drawChars(chardata[],intoffset,intlength,intx,inty)绘制data数组中的部分字符,length指定数组中要连续绘制的字符的个数,offset是首字符在数组中的位置。18.1.2显示框架

drawString(String2818.2容器

容器是用来盛装其它GUI组件的GUI组件,AWT中的容器类有Window、Panel、Applet、Frame、dialog等,而Swing容器类有JFrame、JWindow、JDialog、JApplet、JPanel等。本节介绍几种常用的Swing容器。18.2容器

容器是用来盛装其它GUI组件的GUI组件,A2918.2.1顶层容器

Swing中的JFrame、JDialog、JApplet和JWindow直接继承了AWT组件,它们是重量级的,被称为顶层容器。(1)JFrame继承自AWT中的Frame类,通常作为主窗体使用。(2)JDialog用于创建对话框,对话框不能单独存在,必须借助于窗体。(3)JApplet可作为Java小应用程序的窗体,被嵌入到网页中运行。(4)JWindow与JFrame类似,所不同的是JWindow没有用于默认关闭操作或是菜单栏的属性。18.2.1顶层容器

Swing中的JFrame、JDia3018.2.2中间层容器

有些容器不能直接显示到电脑屏幕上,必须放置到顶层容器或其它容器中,它们存在的目的是放置各种组件。常用的中间层容器有JPanel、JScrollPane、JSplitPane、JToolBar、JInternalFrame、JLayeredPane、JRootPane、JTabbedPane18.2.2中间层容器

有些容器不能直接显示到电脑屏幕上,31(1)JPanelJPanel(面板)常用来放置其它轻量级组件。默认状态下,它不绘制任何东西,可以很容易的为其设置边框,也可以嵌套使用。(2)JScrollPaneJScrollPane(滚动面板)JScrollPane包括九个部分:一个中心显示区、四个角和四条边(3)JSplitPaneJSplitPane(分割面板)是一个可以被分成两个显示区域的面板,分割方式可以是水平分割,也可以是垂直分割。如果设置了动态拖拽功能,则拖动分割线时两边组件会随着拖拽动态改变大小。通常先把组件放到JScrollPane中,再把JScrollPane放到JSplitPane中,这样每个窗口都可以拖动滚动条看到组件的全部内容。(1)JPanel(2)JScrollPane(3)JSpl32(4)JTabbedPaneJTabbedPane(页签面板)可以在窗体上显示多个控件。可以将不同类别的控件放到不同的Tab页上,然后通过需要点击相应的Tab页。可以通过

setTabComponentAt方法将控件放到Tab上。(5)JLayeredPane(6)JInternalFrameJInternalFrame(内部窗体)具有最大化、最小化、关闭、加入菜单等功能。JInternalFrame是轻量级组件,不能单独显示为了方便管理,一般会将JInternalFrame加入JDesktopPane中,JDesktopPane是一种特殊的分层面板,是JLayeredPane子类,用来建立虚拟桌面(Vitual

Desktop).它可以显示并管理众多JInternalFrame之间的层次关系。(4)JTabbedPane(5)JLayeredPane(33(7)JOptionPaneJOptionPane(选择面板)能够方便地弹出满足用户要求的各种类型对话框。此类中包含showXxxDialog()方法:1)showConfirmDialog()方法:显示确认对话框;2)showInputDialog()方法:显示输入对话框;3)showMessageDialog()方法:显示消息对话框;4)showOptionDialog()方法:显示选择对话框。(7)JOptionPane3418.3布局管理

Java为了实现跨平台的特性并且获得动态的布局效果,采用布局管理器对容器中的组件进行布局。Java定义了多种布局管理器,通过布局管理器之间的组合,能够设计出复杂的界面,而且在不同操作系统平台上都能够有一致的显示界面。18.3布局管理

Java为了实现跨平台的特性并且获得动3518.3.1BorderLayout

BorderLayout是JFrame的默认布局,可以直接通过add()方法为其添加组件,默认情况下组件被放在JFrame的中心位置,并且组件向四周扩展,占满整个JFrame,BorderLayout的特点:(1)把容器分为五个方位:东、西、南、北、中,组件按照方位被添加到容器。(2)组件的大小占满整个所属方位,组件的大小随着容器的变化而变化。(3)如果不指定方位,组件默认被添加到容器的中心位置,并且占满整个容器。18.3.1BorderLayout

BorderLayo3618.3.2FlowLayout

FlowLayout是JPanel的默认布局方式。使用FlowLayout布局方式的容器中,组件按照加入的先后顺序按照设置的对齐方式(居中、左对齐、右对齐)从左向右排列,一行排满后再从下一行开始继续排列。在这种布局方式中,组件的大小不会随着容器大小的变化而改变,其位置可能会发生改变。18.3.2FlowLayout

FlowLayout是J3718.3.3GirdLayout

GridLayout是把容器分成M×N个网格,M是行数,N是列数,M和N的值可以在创建GridLayout的对象时确定。组件按照从左到右,从上到下的顺序放入容器,容器大小改变时,组件的相对位置不变,大小会改变。18.3.3GirdLayout

GridLayout是把3818.3.4CardLayout

CardLayout是把容器分成多张卡片,每个组件占用一张卡片,组件之间的关系就像一副牌,叠在一起。初始时显示第一张卡片,通过CardLayout类提供的first()方法可以切换到第一张卡片,last()方法可以切换到最后一张卡片,next()方法可以切换到下一张卡片18.3.4CardLayout

CardLayout是把3918.3.5BoxLayout

BoxLayout

可以通过参数

X_AXIS、Y_AXIS把控件进行水平或者垂直排列布局,X_AXIS

表示水平排列,Y_AXIS表示垂直排列。BoxLayout

的构造函数有两个参数,一个参数定义使用该

BoxLayout

的容器,另一个参数是指定

BoxLayout

是采用水平还是垂直排列。当BoxLayout进行布局时,假如布局的整个水平或者垂直空间的尺寸不能放下所有控件,那么BoxLayout会试图调整各个控件的大小来填充整个布局的水平或者垂直空间。BoxLayout往往和Box这个容器结合在一起使用Box类的静态方法createHorizontalBox()可以获得一个水平存放组件的Box对象。静态方法createVerticalBox()可以获得一个可以竖直存放组件的Box对象。18.3.5BoxLayout

BoxLayout可以通4018.3.6绝对布局

每个组件(包括容器)都是一个矩形区域,该矩形区域的左上角为坐标原点(0,0),x轴向右增大,y轴向下增大使用绝对布局的操作步骤:(1)首先利用setLayout(null)语句将容器的布局设置为null布局(空布局);(2)再调用组件的setBounds(intx,inty,intwidth,intheight)方法,设置组件在容器中的大小和位置,单位均为像素。18.3.6绝对布局

每个组件(包括容器)都是一个矩形区域4118.4基本组件

因为所有轻量级组件类都继承于JComponent,而JComponent类又是Container类的子类,因此,所有的Swing组件都可作为容器使用。本节只介绍常用的几种基本组件。18.4基本组件

因为所有轻量级组件类都继承于JCompo4218.4.1AbstractButton

Swing中许多类型的按钮,包括复选框、单选按钮等,都是从AbstractButton类继承而来的。可以使用setBorder()方法为组件添加边框,还可以把单选按钮添加到按钮组中。18.4.1AbstractButton

Swing中许多4318.4.2菜单

下拉式菜单也是从AbstractButton继承而来,而弹出式菜单继承于JComponent类。在使用下拉式菜单时,必须为容器设置

温馨提示

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

评论

0/150

提交评论