![[理学]OOP 09章 补充复杂Swing组件与绘图ppt课件_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-1/13/99103365-ab68-4f15-9f84-5afcf0437fe6/99103365-ab68-4f15-9f84-5afcf0437fe61.gif)
![[理学]OOP 09章 补充复杂Swing组件与绘图ppt课件_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-1/13/99103365-ab68-4f15-9f84-5afcf0437fe6/99103365-ab68-4f15-9f84-5afcf0437fe62.gif)
![[理学]OOP 09章 补充复杂Swing组件与绘图ppt课件_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-1/13/99103365-ab68-4f15-9f84-5afcf0437fe6/99103365-ab68-4f15-9f84-5afcf0437fe63.gif)
![[理学]OOP 09章 补充复杂Swing组件与绘图ppt课件_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-1/13/99103365-ab68-4f15-9f84-5afcf0437fe6/99103365-ab68-4f15-9f84-5afcf0437fe64.gif)
![[理学]OOP 09章 补充复杂Swing组件与绘图ppt课件_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-1/13/99103365-ab68-4f15-9f84-5afcf0437fe6/99103365-ab68-4f15-9f84-5afcf0437fe65.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第九章(补充):复杂的Swing组件与绘图提纲1. 菜单组件及其应用2. 表格组件及其应用3. 树组件及其应用4. 对话框的应用:1. 文件选择FileChooser2. 普通对话框JOptionPane3. 颜色选择对话框JColorChoose5. 以JPanel或JFrame作画布绘图.1.1菜单 显示一个项目列表,指明用户可以执行的各项操作 文件编辑格式帮助字体段落项目符号和编号背景色红色红色绿色绿色黑色黑色菜单JMenu菜单项JMenuItemJMenuBar 1-2菜单类 包含 javax.swing 包的菜单类的类层次结构ObjectComponentContainerJComp
2、onentJMenuBarJSeparatorAbstractButtonJPopupMenuJMenuJCheckboxMenuItemJRadioButtonMenuItemJMenuItem1.3 菜单的应用 JMenuBar是顶层容器 JMenu是中间层容器 JMenuItem是最后一层/创建菜单部件对象JMenuBar myBar = new JMenuBar();JMenu mnuFile = new JMenu(“文件”);JMenuItem miOpen = new JMenuItem(“打开”);/组装菜单myBar.add(mnuFile); mnuFile.add(miO
3、pen);应用示例程序import java.awt.Dimension;import javax.swing.*;public class MenuFrame extends JFrame JPanel contentPane;/定义菜单条 JMenuBar barNotepad = new JMenuBar();/定义菜单 JMenu mnuFile = new JMenu(“文件); JMenu mnuEdit = new JMenu(“编辑); JMenu mnuFormat = new JMenu(“格式); JMenu mnuHelp = new JMenu(“帮助);/定义菜单菜
4、单项 JMenuItem itemNew = new JMenuItem(“新建); JMenuItem itemOpen = new JMenuItem(“打开.); JMenuItem itemSave = new JMenuItem(“保存); JMenuItem itemSaveAs = new JMenuItem(“另存为); JMenuItem itemExit = new JMenuItem(“退出);/在构造方法中组装菜单public MenuFrame() contentPane = (JPanel) getContentPane(); contentPane.setLayo
5、ut(null);/给窗口装上菜单条 this.setJMenuBar(barNotepad);/向菜单条中加入菜单 barNotepad.add(mnuFile); barNotepad.add(mnuEdit); barNotepad.add(mnuFormat); barNotepad.add(mnuHelp);/向菜单中加入菜单项 mnuFile.add(itemNew); mnuFile.add(itemOpen); mnuFile.add(itemSave); mnuFile.add(itemSaveAs); mnuFile.add(itemExit); setSize(new D
6、imension(400, 300); 菜单事件处理选中菜单,将产生ActionEvent事件通过实现ActionListener,并重写 actionPerformed()方法进行处理,如在构造方法中可包含如下代码 : itemNew.setMnemonic(N); /设置菜单项的快捷键 itemNew.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) newFile();/通过独立的方法实现打开文件的操作 );1-4 JPopupMenu 类 用于显示弹出式菜单 可显示在屏幕
7、的任何地方 通常是由单击鼠标右键触发的 激活弹出式菜单项之一所执行的操作总是依赖于上下文 可供 JPopupMenu 类使用的方法1-4 JPopupMenu 类 2-2方法方法 说明说明 public JMenuItem add(JMenuItem menuItem) 将指定菜单项添加至菜单末尾public JMenuItem add(Strings) 使用指定文本新建菜单项,并将其添加至菜单末尾public void show(Component c, int x, int y) 在组件“c”的坐标空间的 (x, y) 位置显示弹出式菜单public Boolean isPopupTrig
8、ger() 确定是否将鼠标事件看作是当前平台的弹出触发器2 表格组件及其应用 表格便于对大量数据进行操作 JTable 类可以创建表 JTabel的功能: 显示数据,并可对数据进行编辑 它不负责数据的存储,只负责呈现数据 实现数据以数组或集合的形式存放 JTable要与存放数据的集合结合使用2.1 定义表格组件/准备数据Object cells = Java,new Integer(01),new Integer(400), Oracle,new Integer(02),new Integer(500), C#,new Integer(03),new Integer(700), ; Strin
9、g colnames=课程名称,课程编号,学费(元);/用数据作参数创建表格对象JTable jTable1 = new JTable(cells, colnames); 2.3 JTable示例程序import javax.swing.*;import java.awt.*;import javax.swing.table.JTableHeader;public class TableFrame extends JFrame /准备数据 Object cells = Java,new Integer(01),new Integer(400), Oracle,new Integer(02),n
10、ew Integer(500), C#,new Integer(03),new Integer(700), ; String colnames=课程名称,课程编号,学费(元); /定义并创建表对象,表头对象 JTable jTable1 = new JTable(cells, colnames); JTableHeader jTableHeader1 = jTable1.getTableHeader(); /表头对象 JPanel contentPane;构造方法public TableFrame() contentPane = (JPanel) getContentPane();jTable
11、1.setBackground(Color.yellow);/设置表格显示特性 jTable1.setBorder(null); jTable1.setGridColor(Color.black); jTable1.setSelectionBackground(Color.orange); jTable1.setBounds(new Rectangle(11, 29, 251, 161);/设置表头显示特性 jTableHeader1.setBackground(Color.pink); jTableHeader1.setBounds(new Rectangle(10, 10, 252, 20
12、);/向内容窗口中添加表头和表格体 contentPane.add(jTableHeader1); contentPane.add(jTable1);/其它 contentPane.setLayout(null); setSize(new Dimension(400, 300); setTitle(欢迎使用 JTable); .在NetBeans可视化地创建表格 操作演示3 树组件JTree及其应用树组件JTree: 树状图以垂直的分层结构方式描述信息 Windows 资源管理器或文件管理器用树状结构来描述文件和文件夹 使用 JTree 类可在 Java 中创建这些结构 树节点TreeNode
13、 树层次结构中的每一行称为一个节点 每个树都有一个根节点,可由这个根节点展开所有节点 节点包含实际的数据3.1 JTree的节点叶节点节点上不包含节点 节点上下都包含节点 节点下不包含节点 节点类型枝节点根节点3.2 JTree的构造方法JTree的构造方法JTree(),是缺省的构造方法, JTree(Hashtable ht); JTree(Object obj ); JTree(TreeNode tn); JTree(Vector v);第四个构造方法接收一个 TreeNode 对象。该对象本身可以是 JTree 组件,也可以是DefaultMutableTreeNode 类的对象。用户
14、可以使用DefaultMutableTreeNode 对象来实现自定义的JTree3.3 创建自定义的 JTree自定义树结构的代码片段./ 创建根节点DefaultMutableTreeNode root = new DefaultMutableTreeNode(根节点);/ 创建枝节点DefaultMutableTreeNode parent = new DefaultMutableTreeNode(书籍);DefaultMutableTreeNode leaf = new DefaultMutableTreeNode(java);/ 将叶节点添加至枝节点parent.add(leaf)/
15、 将枝节点添加至根节点root.add(parent);jTree2 = new JTree(root);contentPane.add(jTree2);对树节点事件的处理示例public void jTree2_valueChanged(TreeSelectionEvent e) /取得当前节点 对象 DefaultMutableTreeNode node = (DefaultMutableTreeNode) jTree2.getLastSelectedPathComponent(); String name = ;/取得当前节点信息 Object nodeInfo = node.getUs
16、erObject(); if(node.isRoot() txtName.setText(); txtNode.setText(nodeInfo.toString(); txtType.setText(根节点); txtNumber.setText(+node.getChildCount(); else name = node.getParent().toString(); txtName.setText(name); txtNode.setText(nodeInfo.toString(); if (node.isLeaf() txtType.setText(叶节点); else txtTyp
17、e.setText(“枝节点); int number = node.getChildCount(); txtNumber.setText( + number); 4. 对话框JFileChooser文件文件选择选择对话对话框框JOptionPane普通对话框JColorChooser颜色选择对话框构造方法1. JFileChooser()2. JFileChooser(File dir)3. JFileChooser(String dir)常用常用方法方法1. int showOpenDialog(Component parent)使用者使用者打打开,則回值开,則回值:JFileChoose
18、r.APPROVE_OPTION。若若使用者使用者选选择择取消取消,則,則传传回值回值JFileChooser. CANCEL_OPTION。若发生错误,则則若发生错误,则則传传回值回值JFileChooser. ERROR _OPTION。 常用常用方法方法2. int showSaveDialog(Component parent) 显显示示保保存存对对話框,話框,参参数数parent是設定是設定显显示示对话对话框的容器。框的容器。 在在保保存對話框內會出現兩個按鈕存對話框內會出現兩個按鈕 “确确认认”、”取取消消”。當使用。當使用者點選者點選”确确认认”按钮按钮,則傳回值為,則傳回值為J
19、FileChooser.APPROVE_OPTION。3. int showDialog(Component parent, String text) 顯示自顯示自定定义义对话对话框,若框,若参参数数text為為”打打开开”,則自,則自定定打打开對开對話框。話框。 若若参参数数text為為”刪除刪除”,則自訂刪除對話框。,則自訂刪除對話框。 在所有的自訂對話框內,皆會出現兩個按鈕,其中一個固定為在所有的自訂對話框內,皆會出現兩個按鈕,其中一個固定為 “取取消消”,另一個視參數,另一個視參數text而定。若參數而定。若參數text為為”刪除刪除”,則該按,則該按鈕為鈕為删删除。且按該鈕時的傳回值
20、為除。且按該鈕時的傳回值為 JFileChooser.APPROVE_OPTION。常用常用方法方法4. void setDialogTitle(String title)設定對話框的標題列文字。設定對話框的標題列文字。5. File getCurrentDirectory()取得目前的取得目前的文文件夾。即傳回目前檔案選擇對話框件夾。即傳回目前檔案選擇對話框正在操作的正在操作的文文件夾,傳回值件夾,傳回值为为File类类型的型的对对象。象。6. String getName()取得被選取取得被選取文文件名。件名。7. String getPath()取得被選取取得被選取文文件的路徑及件的路徑
21、及文文件名。件名。8. void setMultiSelectionEnabled(boolean b) 設定可否設定可否多多选。若參數选。若參數b为为true,表示在檔案選擇框中可以,表示在檔案選擇框中可以多多选选文文件;若參數件;若參數b为为false,表示只能選取一個文,表示只能選取一個文件件。 使用本方法要緊接在要使用本方法要緊接在要创创建建文文件件选择对选择对话框话框之之后。后。9.boolean isMultiSelectionEnabled()判斷是否允許判斷是否允許多多选。若允許,則傳回选。若允許,則傳回true;若不允許,則傳回;若不允許,則傳回false。10.File g
22、etSelectedFile() 取得被取得被选选取的取的文文件。用於不允許件。用於不允許多多选的設定,选的設定,传传回值回值File 类类型的型的对对象。象。11.File getSelectedFiles() 取得被取得被选选取的取的多多个个文文件件集合集合。用於允許。用於允許多多选的設定,选的設定,传传回值回值File 类类型的型的对对象。象。JColorChooser 色彩選擇對話框色彩選擇對話框一、一、构构造造方法方法:1. JColorChooser() 建立一個色彩選擇對話框。建立一個色彩選擇對話框。2. JColorChooser(Color color) 建立一個色彩選擇對話
23、框,並設定選取顏色的預設值。建立一個色彩選擇對話框,並設定選取顏色的預設值。二、常用的方法:二、常用的方法:1. Color showDialog(Component parent, String title, Color color) 顯示色彩選擇對話框,參數顯示色彩選擇對話框,參數parent是設定顯示對話框的容器,是設定顯示對話框的容器, 若設定值為若設定值為 null或或this,則對話框會被顯示在螢幕的中央。,則對話框會被顯示在螢幕的中央。 參數參數title:設定色彩選擇對話框的標題列文字。:設定色彩選擇對話框的標題列文字。 參數參數color:設定選取顏色的預設值。:設定選取顏色
24、的預設值。2. Color getColor()取得被選取的顏色值。取得被選取的顏色值。工具工具条条(JToolBarJToolBar)一、一、构构造造方法方法:1. JToolBar()建立一個水平工具建立一個水平工具条条。2. JToolBar(int orient)建立一個工具列。參數建立一個工具列。參數orient若為若為JToolBar.HORIZONTAL,則為水平工具列;則為水平工具列;orient若為若為JToolBar.VERTICAL,則為,則為垂直工具列。垂直工具列。3. JToolBar(String name)建立一個有名稱的水平工具列,名稱由參數建立一個有名稱的水平
25、工具列,名稱由參數name來命名。來命名。4. JToolBar(String name, int orient)建立一個有名稱的工具列,可設定工具列水平或垂直排列。建立一個有名稱的工具列,可設定工具列水平或垂直排列。二、常用的方法:二、常用的方法:1. add(Component comp)新增工具列元件,即將參數新增工具列元件,即將參數comp指定的元件(如指定的元件(如JButton)加入工具列中。加入工具列中。2. void addSeparator()將分隔線加入到工具列中。將分隔線加入到工具列中。3. void setOrientation(int orient)設定工具列的方向,
26、可設為設定工具列的方向,可設為JToolBar.HORIZONTAL或或JToolBar.VERTICAL。1. 行行10:宣告建立工具列物件:宣告建立工具列物件toolBar。2. 行行0607、1114、1920:兩個放入圖形的:兩個放入圖形的JButton物件物件btn1、btn2,做為加入工具列的元件。,做為加入工具列的元件。3. 行行1516:為兩個工具圖示按鈕註冊事件傾聽者。:為兩個工具圖示按鈕註冊事件傾聽者。4. 行行1718:為兩個工具圖示按鈕設定提示文字。:為兩個工具圖示按鈕設定提示文字。9.5 在JFrame或JPanel中绘图 9.5.0 5.0 绘图概述绘图概述 9.5
27、.5.1 Graphics 1 Graphics 类类 9.5.5.2 2 以以JFrameJFrame窗窗体体为为画布画布 9.5.5.3 3 以以JPanelJPanel容器为容器为画布画布 9.5.5.4 4 設設定定颜颜色色与与字形字形 9.5.5.5 5绘绘图方法图方法 9.5.5.6 6 图图像像处处理理9.5.0 绘图概述屏幕屏幕上上显示的显示的内内由很多像素(由很多像素(Pixel)所)所构构成,成,通通过像素的明暗度过像素的明暗度和和色彩色彩的的组组合,可以合,可以构构成成变变化多端的文字、化多端的文字、图图形形与与图图象象。Java.awt包中包中的的Graphics类类別
28、可用來別可用來绘制绘制图图形形和和显示显示文字,文字,Image类类別可用來進行別可用來進行图图像的像的处处理。理。显示显示文字文字时时:可以指定字型、樣式、大小:可以指定字型、樣式、大小等格式等格式画画布布:画画布布是是绘绘图的图的环境环境,JFrame(視窗)或(視窗)或JPanel(容器)(容器)等等组组件可件可当作当作画布。画布。9.5.5.1 Graphics 1 Graphics 类类 paint() 、paintComponent() 是专门是专门用于用于绘图绘图的方法的方法 Graphics类类相当相当于于画笔画笔,可可用用于于画画出出各各种种图图形形对象对象。 可以在可以在J
29、Frame和和JPanel(容器)上(容器)上画画图。图。 getGraphics()方法方法用用于于得得到到Graphics类型类型的的画笔画笔,以,以绘绘制文字、制文字、线线段、矩形、橢圓、段、矩形、橢圓、扇型、多扇型、多边边形形等等图图形。形。9.5.2以JFrame作画布, 示例import java.awt.Graphics;import javax.swing.*;public class DrawTest0 extends JFrame Override public void paint(Graphics g) super.paint(g);/没有此语句将如何? g.drawS
30、tring(This is a string,30,50); g.drawOval(40,60,100,150); public static void main(String args) DrawTest0 dt = new DrawTest0(); dt.setSize(350,300); dt.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); dt.setVisible(true);说明:说明:1. java.awt.Graphics 是是AWT包中的一包中的一个类个类2. paint()方法,方法,在在画画布需要布需要刷新刷新时时自动自动执
31、行执行,如,如窗窗口口打开打开或大小变化,或程或大小变化,或程序调用序调用 repaint()时时。3. paint()方法,方法,接接收收Graphics类型类型的参的参数。数。4. g.drawString()方法用方法用于于绘制文字。绘制文字。本行將本行將 “大家好!大家好! ” 文字內容文字內容在在坐标(坐标(30,50)处处。g.drawOval()方法用于绘制一个圆。方法用于绘制一个圆。9.5.2 以JPanel作画布, 示例 以JPanel作画布, 定义包含画图功能的JPanel类 创建该实例对象,将它加入到JFrame窗体中 可实现在JFrame中的某一区域画图。paintCo
32、mponent()方法方法在在JPanel容器上容器上应应用用paintComponent()方法方法绘图与绘图与在在JFrame窗窗体体上使用上使用paint() 方法方法绘图绘图的情形相同的情形相同只要是只要是所所在在窗体窗体更更新新,或遇到,或遇到repaint()调调用用时时,系統,系統将将自动自动调用调用paintComponent()方法方法,重,重新新绘制绘制图形或文字。图形或文字。 示例代码import java.awt.Graphics;import javax.swing.*;public class DrawTest1 extends JFrame /构造方法 DrawT
33、est1() DrawPanel dt = new DrawPanel(); dt.setBounds(30,20,250,250); /将画布放置在坐标(30,20)处,长宽各为250 add(dt); setSize(350,300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public static void main(String args) JFrame jf = new JFrame(); jf.setVisible(true);Class DrawPanel extends JPanel /定义一个有图形的JPanel类
34、public void paintComponent(Graphics g) g.drawString(“小事不做,大事难成, 40,70); g.drawOval(40,60,100,150); ;说明. DrawPanel dt = new DrawPanel(); dt.setBounds(30,20,250,250); /将画布放置在坐标(30,20)处,长宽各为250 add(dt); 9.5.4 常用的繪圖方法常用的繪圖方法 不不管用管用什什么么当作当作画布,都通过画布,都通过Graphics对象来对象来绘绘图图。绘制绘制线条线条的的颜色颜色和和区域区域填充填充的的颜色颜色都都用用
35、setColor指定指定如如:g.setColor(Color.blue);/将画笔设定为蓝色将画笔设定为蓝色9.5.6 9.5.6 图图像像处处理理我們曾我們曾让图像显让图像显示在示在JLabel标标签和签和JButton按鈕內,現在我們要將按鈕內,現在我們要將它它显示在显示在画画布上。而且,布上。而且,我們我們还还能使能使图像图像做縮小、放大、上下顚倒、左右做縮小、放大、上下顚倒、左右反置的反置的变变化。化。显显示示图图像的方法像的方法用用Graphics类类型型的的对象对象g在在画画布布显显示示图图像的方法像的方法为为drawImage(),其其语法语法如下:如下:g.drawImage(Image img,int x,int y,ImageObserver observer) Image img:為:為Image物件。該物件的圖形取自存放在物件。該物件的圖形取自存放在ImageIcon物件物件內的圖形。內的圖形。 int x:設定:設定Image物件顯示在畫布時,其左
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年小学语文学习资源整合计划
- 外研版小学英语(三起)三年级跨学科融合计划
- 2025部编版八年级道德与法治班级管理计划
- 文化产业项目质量管理措施
- 连锁餐饮企业投标文件示例
- 制造业班组长岗位职责
- 留学服务中心年度服务计划
- 环境设计师的岗位职责
- 九年级化学实验技能训练计划
- 三年级下册科学课外探究计划
- 2024糖尿病酮症酸中毒诊断和治疗课件
- 妊娠期糖尿病产后护理
- 老挝万象钾矿百万吨级规模氯化钾开发项目可行性分析研究的开题报告
- 编辑打印新课标高考英语词汇表3500词
- 2023年湖南省烟草专卖局(公司)真题
- 22G101基础平法识图与钢筋计算
- 2024年专升本考试-专升本考试(机械设计基础)笔试历年真题荟萃含答案
- 对中标候选人的异议书
- 2024年北京市自来水集团长辛店分公司招聘笔试参考题库含答案解析
- -医院感染预防与控制标准操作规程SOP第2版
- 老人疫苗接种健康知识讲座
评论
0/150
提交评论