190 likes | 378 Views
Java 2 实用教程(第3版)教学课件. 课件制作 耿祥义 张跃平 配合例子代码一同使用 例子代码可登录 www.tup.tsinghu.edu.cn 下载. 第 17 章 Java Swing 基础. 17.1 几个重要的类 17.2 中间容器 17.3 各种组件.
E N D
Java 2实用教程(第3版)教学课件 • 课件制作 耿祥义 张跃平 • 配合例子代码一同使用 例子代码可登录www.tup.tsinghu.edu.cn下载
第17章 Java Swing 基础 • 17.1 几个重要的类 • 17.2中间容器 • 17.3各种组件
javax.swing包为我们提供了更加丰富的、功能强大的组件,称为swing组件,其中大部分组件是轻量组件,没有同位体。swing组件的轻组件在设计上和AWT完全不同,轻组件把与显示组件有关的许多工作和处理组件事件的工作交给相应的UI代表来完成,这些UI代表是用Java语言编写的类,这些类被增加到java的运行环境中,因此组件的外观不依赖平台,不仅在不同平台上的外观是相同的,而且较重量组件而言有更高的性能.javax.swing包为我们提供了更加丰富的、功能强大的组件,称为swing组件,其中大部分组件是轻量组件,没有同位体。swing组件的轻组件在设计上和AWT完全不同,轻组件把与显示组件有关的许多工作和处理组件事件的工作交给相应的UI代表来完成,这些UI代表是用Java语言编写的类,这些类被增加到java的运行环境中,因此组件的外观不依赖平台,不仅在不同平台上的外观是相同的,而且较重量组件而言有更高的性能.
17.1几个重要的类 • javax.swing包中有四个最重要的类JApplet、JFrame、JDialog、JComponent。 • JComponent类的子类都是轻组件,而JFrame、JApplet、JDialog都是重组件,即有同位体的组件,这样窗口(JFrame)、对话框(JDialog)、小应用程序(JApplet)可以和操作系统交互信息,轻组件必须在这些重量容器中绘制自己。 • JComponent 类是java.awt包中容器类Container类的子类,因此所有的轻量组件也都是容器。
1. JComponent类 • JComponent类是所有轻量组件的父类(就象Component类是所有重量组件的父类)。 • JComonent的几个代表子类: JLable 负责创建标签 JMenu 负责创建菜单对象 JMenuItem 负责创建菜单项对象 JPanel 负责创建面板对象 JPasswordField 负责创建口令文本框对象 JPopupMenu 负责创建弹出式菜单 JProgressBar 负责创建进程条 JRadioButton 负责创建单选按钮 JScrollBar 负责创建滚动条 JScrollPane 负责创建滚动窗格 JSlider 负责创建滑动条 JSplitPane 负责创建拆分窗格 JTable 负责创建表格
2. JFrame类 • javax.swing包中的JFrame类是java.awt包中Frame类的子类。因此JFrame类其子类创建的对象是窗体。由于Frame是重量容器,因此JFrame类或子类创建的对象(窗体)也是重量容器。
3 . JApplet类 • JApplet类也是用来建立java小应用程序用的。JApplet是Javax.swing包中的类,它还是java.applet包中的Applet类的子类,因此JApplet对象也是一个重量容器。
4 .JDialog类 • JDialog 是java.awt包中Dialog类的子类。JDialog类或子类创建的对象是也是重量容器,该对象必须依附一个JFrame对象。
5. 事件处理 • 重量组件的事件处理模式:授权处理模式,仍然适合于 轻组件的事件处理,即事件源、监视器和接口。事件由事件源产生,为了能处理相应类型的事件,事件源必须使用相应的方法获得监视器。当事件发生时,监视器使用接口中的方法对事件进行处理。
17.2 中间容器 • 我们已经知道轻组件都是容器,但仍有一些经常用来添加组件的轻容器,相对于底层重量容器而言,我们习惯上称这些轻容器为中间容器。
1.JPanel 面板 • 我们会经常使用JPanel创建一个面板,再向这个面板添加组件,然后把这个面板添加到底层容器或其他中间容器中。JPanel面板的默认布局是FlowLayout布局。
2.滚动窗口JScrollPane • 我们可以把一个组件放到一个滚动窗口中,然后通过滚动条来观察这些组件。例如,JTextArea不自带滚动条(这一点与重量组件TextArea不同),因此我们就需要把文本区放到一个滚动窗口中。例如,JScorollPane scroll=new JScorollPane(new JTextArea());
3. 拆分窗口JSplitPane • 拆分窗口就是被分成两部分的窗口。拆分窗口有两种类型:水平拆分和垂直拆分。水平拆分窗口用一条拆分线把窗口分成左右两部分,左面放一个组件,右面放一个组件,拆分线可以水平移动。垂直拆分窗口用一条拆分线把窗口分成上下两部分,上面放一个组件,下面放一个组件,拆分线可以垂直移动。
17.3 各种组件 1. 按钮(JButton) JButton 类负责创建按钮对象,与重量组件按钮Button相比,JBtton按钮具有更加丰富的外观. 2.标签(JLabel) JLabel 类负责创建标签对象,与重量组件标签Label相比,JLabel标签具有更加丰富的外观,例如我们可以创建带图标的标签。 3.复选框(JCheckBox) JCheckBox 类负责创建复选框对象。与重量组件复选框Checkbox相比,JCheckBox复选框的名字不仅可以是字符串,而且它的样子可以是一个图标。
4. 单选按钮(JRadioButton) 单选按钮和复选框很类似,所不同的是:在若干个复选框中我们可以同时选中多个,而一组单选按钮同一时刻只能有一个被选中。 5 .下拉列表(JComboBox) 用户可以在下拉列表看到第一个选项和它旁边的箭头按钮,当用户单击箭头按钮时,对于下拉式列表事件源,可以发生ItemEvent事件。
6. 文本框(JTextField)、密码框JPasswordField、文本区(JTextArea) JTextField文本框、JTextArea文本区和重组件的文本框、文本区类似,分别用于显示单行文本和多行文本。例如,可以使用 setText(String)设置文本,getText()获取文本,文本区还可以使用append(String)向文本区追加文本,口令框可以使用setEchoChar(char c)设置回显字符等,JTextField文本框还可以调用setHorizontalAlignment(int alignment)方法设置文本的对齐方式,其中alignment的有效值是JTextField.LEFT、JTextField.CENTER、JTextField.RIGHT 、JTextField.LEADING 、JTextField.TRAILING 。
7.文件选择器(JFileChooser) 文件选择器是一个从文件系统中进行文件选择的界面。文件选择器事实上并不能打开或保存文件,它们只能替你得到要打开或保存的文件对象,要想真正实现打开或保存,必须还得使用输入、输出流。
8.进度条 使用JProgressBar类创建进度条组件。该组件能用一种颜色动态地填充自己,以便显示某任务完成的百分比。 9.表格(JTable) 表格组件以行和列的形式显示数据,允许对表格中的数据进行编辑。表格的模型功能强大、灵活并易于执行。
10.树(JTree) 一个JTree类对象提供了一个用树型结构分层显示数据的视图,树中最基本的对象叫做节点,它表示在给定层次结构中的数据项。树以垂直方式显示数据,每行显示一个节点。树中只有一个根节点,所有其它节点从这里引出。除根节点外,其它节点分为两类:一类是带子节点的分支节点,另一类是不带子节点的叶节点。每一个节点关联着一个描述该节点的文本标签和图像图标。文本标签是节点的字符串表示,图标指明该节点是否是叶节点。初始状态的树型视图,在默认情形下,只显示根节点和它的直接子节点。用户可以双击分节点的图标或单击图标前的“开关”使该节点扩展或收缩(使它的子节点显示或不显示)。