Java实用教程第18讲 java swing

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

18.3.1 BorderLayout
• BorderLayout 是JFrame的默认布局,可以直 接通过add()方法为其添加组件,默认情况下组 件被放在JFrame的中心位置,并且组件向四周 扩展,占满整个JFrame,BorderLayout的特点:
• (1)把容器分为五个方位:东、西、南、北、 中,组件按照方位被添加到容器。
• (1)JPanel
• JPanel(面板)常用来 放置其它轻量级组件。 默认状态下,它不绘制 任何东西,可以很容易 的为其设置边框,也可
以嵌套使用。
• (2)JScrollPane • JScrollPane(滚动面
板)JScrollPane包括 九个部分:一个中心显 示区、四个角和四条边
(3)JSplitPane JSplitPane(分割面板) 是一个可以被分成两个显
• Swing中的JFrame、JDialog、JApplet和JWindow直 接继承了AWT组件,它们是重量级的,被称为顶层容器。
• (1)JFrame继承自AWT中的Frame类,通常作为主窗 体使用。
• (2)JDialog用于创建对话框,对话框不能单独存在, 必须借助于窗体。
• (3)JApplet可作为Java小应用程序的窗体,被嵌入 到网页中运行。
18.4 基本组件
• 因为所有轻量级组件类都继承于 JComponent,而JComponent类又是 Container类的子类,因此,所有的 Swing组件都可作为容器使用。本节只 介绍常用的几种基本组件。
18.4.1 AbstractButton
• Swing中许多类型的按钮,包括复选框、单选按钮 等,都是从AbstractButton类继承而来的。可以使 用setBorder()方法为组件添加边框,还可以把单 选按钮添加到按钮组中。
• 树中显示的每一行包含一项数据, 称之为节点( node )。每颗树 有一个根节点( root node ), 其他节点都是它的子孙。
• 分支节点可以有任意多个孩子。
18.5 本讲小结
• 本讲首先讲述了Swing的基础知识,然 后对容器、布局管理进行了介绍,最后 讲述了几种常用的组件。
讲后练习
• (2)组件的大小占满整个所属方位,组件的 大小随着容器的变化而变化。
• (3)如果不指定方位,组件默认被添加到容 器的中心位置,并且占满整个容器。
18.3.2 FlowLayout
• FlowLayout是JPanel的默认布局方式。使用 FlowLayout布局方式的容器中,组件按照加 入的先后顺序按照设置的对齐方式(居中、左 对齐、右对齐)从左向右排列,一行排满后再 从下一行开始继续排列。
18.4.2 菜单
下拉式菜单也是从AbstractButton继承而来,而 弹出式菜单继承于JComponent类。在使用下拉 式菜单时,必须为容器设置菜单条,然后把菜 单添加到菜单条上,把菜单项添加到菜单上。 在使用弹出式菜单时,必须结合鼠标事件显示。
18.4.3 标签和文本编辑组件
• JLabel(标签)用于显示文本或图像。可以通 过设置垂直和水平对齐方式,指定标签显示区 中标签内容在何处对齐。默认情况下,只显示 文本的标签是开始边对齐,而只显示图像的标 签则水平居中对齐。
18.4.5 滑块和进度条 • 18.4.6 选择框
• 通过JSlider(滑 • JFileChooser(文件对
块)的前后移动来 话框)支持打开和保存
控制数据的输入有 文件,使文件操作更方
时能使某种操作更 便,但要真正打开和保
直观,如音量的控 存文件,还要结合I/O
制。JProgressBar 操作。
18.3.4 CardLayout
• CardLayout是把容器分成多张卡片,每 个组件占用一张卡片,组件之间的关系 就像一副牌,叠在一起。初始时显示第 一张卡片,通过CardLayout类提供的 first()方法可以切换到第一张卡片, last()方法可以切换到最后一张卡片, next()方法可以切换到下一张卡片
(7)JOptionPane JOptionPane(选择面板)能够方便地弹出 满足用户要求的各种类型对话框。此类中包
含showXxxDialog()方法: 1)showConfirmDialog()方法:显示确认对 话框;
2)showInputDialog()方法:显示输入对话 框;
3)showMessageDialog()方法:显示消息对 话框;
• 1、编写程序实现下面的界面。
示区域的面板,分割方式
可以是水平分割,也可以
是垂直分割。如果设置了
动态拖拽功能,则拖动分
割线时两边组件会随着拖
拽动态改变大小。通常先 把组件放到JScrollPane 中,再把JScrollPane放 到JSplitPane中,这样每 个窗口都可以拖动滚动条 看到组件的全部内容。
• (4)JTabbedPane
4)showOptionDialog()方法:显示选择对 话框。
18.3 布局管理
• Java 为了实现跨平台的特性并且获得动态的 布局效果,采用布局管理器对容器中的组件进 行布局。
• Java定义了多种布局管理器,通过布局管理 器之间的组合,能够设计出复杂的界面,而且 在不同操作系统平台上都能够有一致的显示界 面。
• (4)JWindow与JFrame类似,所不同的是JWindow 没有用于默认关闭操作或是菜单栏的属性。
18.2.2 中间层容器
• 有些容器不能直接显示到电脑屏幕上, 必须放置到顶层容器或其它容器中,它 们存在的目的是放置各种组件。常用的 中间层容器有JPanel、JScrollPane、 JSplitPane、JToolBar、 JInternalFrame、JLayeredPane、 JRootPane、JTabbedPane
• 当BoxLayout进行布局时,假如布局的整个水平或者垂直 空间的尺寸不能放下所有控件,那么BoxLayout会试图调 整各个控件的大小来填充整个布局的水平或者垂直空间。
• BoxLayout往往和Box这个容器结合在一起使用
• Box类的静态方法createHorizontalBox()可以获得一个水 平存放组件的Box对象。静态方法createVerticalBox()可以 获得一个可以竖直存放组件的Box对象。
• 在这种布局方式中,组件的大小不会随着容器 大小的变化而改变,其位置可能会发生改变。
18.3.3 GirdLayout
• GridLayout是把容器分成M×N个网格, M是行数,N是列数,M和N的值可以在 创建GridLayout的对象时确定。组件按 照从左到右,从上到下的顺序放入容器, 容器大小改变时,组件的相对位置不变, 大小会改变。
18.1.2 显示框架
• drawString(String s, int x, int y) 从参数x、 y指定的坐标位置处,从左向右绘制参数s指定 的字符串。
• drawChars(char data[],int offset, int length, int x, int y) 绘制data数组中的部分 字符,length指定数组中要连续绘制的字符的 个数,offset是首字符在数组中的位置。
18.2 容器
• 容器是用来盛装其它GUI组件的GUI组 件,AWT中的容器类有Window、Panel、 Applet、Frame、dialog等,而Swing容 器类有JFrame、JWindow、JDialog、 JApplet、JPanel等。本节介绍几种常 用的Swing容器。
18.2.1 顶层容器
18.3.6 绝对布局
• 每个组件(包括容器)都是一个矩形区域,该 矩形区域的左上角为坐标原点(0,0),x轴向 右增大,y轴向下增大
• 使用绝对布局的操作步骤:
• (1)首先利用setLayout(null)语句将容器的 布局设置为null布局(空布局);
• (2)再调用组件的setBounds(int x, int y, int width,int height)方法,设置组件在容器 中的大小和位置,单位均为像素。
• JTabbedPane(页签面 板)可以在窗体上 显示多个控件。可 以将不同类别的控 件放到不同的Tab页 上,然后通过需要 点击相应的Tab页。 可以通 过 setTabComponentAt 方法将控件放到Tab 上。
(5)JLayeredPane
(6)JInternalFrame JInternalFrame(内部窗体)具有 最大化、最小化、关闭、加入 菜单等功能。JInternalFrame是轻 量级组件,不能单独显示 为了方便管理,一般会将 JInternalFrame加入JDesktopPane中, JDesktopPane是一种特殊的分层 面板,是JLayeredPane子类,用来 建立虚拟桌面(Vitual Desktop).它 可以Hale Waihona Puke Baidu示并管理众多 JInternalFrame之间的层次关系。
18.4.4 组合框和列表框
• 用户可以从JComboBox(组合框,也称下拉 列表)中列出的一组元素中选择一个,而且只 能选一个。而JList(列表框)与组合框完全 不同,可以进行多重选择,并且其在屏幕上可 以占据固定行数的空间,JList 不实现直接滚 动。要创建一个滚动的列表,要将它添加到 JScrollPane中。
18.3.5 BoxLayout
• BoxLayout 可以通过参数 X_AXIS、Y_AXIS把控件进行水 平或者垂直排列布局,X_AXIS 表示水平排列,Y_AXIS 表示垂直排列。BoxLayout 的构造函数有两个参数,一 个参数定义使用该 BoxLayout 的容器,另一个参数是指 定 BoxLayout 是采用水平还是垂直排列。
(进度条)能够动 • JColorChooser(颜色
态的显示的数据的 选择对话框)是Java中
状态。
已经定义好的颜色选择
器,通过它可以很方便
的得到各种颜色。
18.4.7 表格和树
• JTable(表格)是数据的视图。 • JTree (树)一个 JTree 对象
只是提供了数据的视图, 通过查 询其数据模型可获得数据。
相关文档
最新文档