第11章 图形界面和Applet
面向对象技术 第十一章图形用户界面.jsp
int getAligment()
void setAligment(int align) String getText() void setText(String text)
返回标签内文字的对齐方式
设置标签内文字的对齐方式 获得标签内的文字 设置标在窗口中的指定位置创建一个标签 的组件,由Label类来创造 import Java.awt.*; public class Window11_3 { public static void main(String[] args) { Frame fra=new Frame("这是创建标签的程序 "); Label b1=new Label(); // 创建一个空标签 fra.setBounds(0,0,300,200); b1.setText("欢迎使用Java语言");//为标签添加文字 b1.setAlignment(Label.CENTER);//设置标签在窗口中央位置 b1.setBackground(Color.blue);//引用Componentlei的方法设置标签背景颜色 b1.setForeground(Color.red); //引用Componentlei的方法设置标签中的文字颜色 fra.add(b1) ; fra.setVisible(true); Color类用来设置颜色,构造方法有两个 } } Color(float r,float g,float b);和 Color(int r,int g,int b);
主要功能 创建一个没有标题的按钮 创建一个以str 为标题的按钮 主要功能 获得按钮的标题 获得设置按钮的标题为str
String getLabel() void setLabel(String str)
图形界面程序设计
图形界面程序设计图形界面程序设计是一种软件开发技术,它允许用户通过图形界面(GUI)与计算机程序进行交互。
这种设计方式极大地提高了程序的易用性和可访问性,使得非技术用户也能轻松地使用复杂的软件。
本文将介绍图形界面程序设计的基本概念、设计原则、常用工具和技术,以及开发流程。
基本概念图形界面程序设计通常涉及以下几个基本概念:- GUI(Graphical User Interface):图形用户界面,是用户与计算机交互的图形化界面。
- 窗口:GUI中的基本元素,可以包含文本、图像、按钮等控件。
- 控件:GUI中的交互元素,如按钮、文本框、滑动条等。
- 布局管理器:用于自动管理GUI中控件的位置和大小。
设计原则在进行图形界面程序设计时,应遵循以下设计原则:1. 一致性:界面元素和操作应保持一致性,使用户易于理解和学习。
2. 反馈:用户操作后,系统应提供及时的反馈,如声音、动画或文本提示。
3. 错误预防:设计时应考虑到用户可能的错误操作,并提供预防措施。
4. 灵活性和效率:界面应适应不同用户的需求,提供快捷操作方式。
5. 美观性:界面设计应美观、专业,提升用户体验。
常用工具和技术开发图形界面程序时,可以使用多种工具和技术:- 编程语言:如Java(Swing, JavaFX)、C#(.NET Framework的Windows Forms或WPF)、Python(Tkinter, PyQt)等。
- 开发环境:集成开发环境(IDE),如Eclipse、Visual Studio、PyCharm等。
- 图形库:提供创建GUI元素的库,如Qt、GTK+等。
- 设计工具:如Adobe XD、Sketch、Figma等,用于设计界面原型。
开发流程图形界面程序设计的开发流程通常包括以下步骤:1. 需求分析:明确软件的目标用户、功能需求和性能要求。
2. 界面设计:设计界面布局、颜色方案、字体选择等。
3. 原型制作:使用设计工具创建界面原型,进行用户测试和反馈收集。
Java课件 第十一章Java Applet
1
Applet概述 Java Applet概述
能够独立运行的程序称作Java应用程序 应用程序 能够独立运行的程序称作 Java小程序(也称 小程序( 小程序 也称Java Applet)是运行于各种网页文件中,用 )是运行于各种网页文件中, 于增强网页的人机交互、动画显示、 于增强网页的人机交互、动画显示、声音播放等功能的程序 Java Applet能够跨平台地运行于网络中的各种不同类型的计算机 能够跨平台地运行于网络中的各种不同类型的计算机 客户端的计算机,只要安装了支持Java的浏览器,并且和网 的浏览器, 上。客户端的计算机,只要安装了支持 的浏览器 络中的服务器建立了连接,就可以从服务器下载嵌入了Apple的网 络中的服务器建立了连接,就可以从服务器下载嵌入了 的网 页文件,并在本地机的浏览器上运行含有Applet的网页 的网页Applet的 页文件,并在本地机的浏览器上运行含有 的网页 的 工作过程如图所示
编 译 Java源 序 程
字 码 节
嵌 入
HTML文 件
运 行 浏 器 览
Java Applet在结构和执行过程两个方面具有如下特点: 在结构和执行过程两个方面具有如下特点: 在结构和执行过程两个方面具有如下特点 在结构方面, 小程序和Java应用程序的不同之处主要表现在: 应用程序的不同之处主要表现在: 在结构方面,Java小程序和 小程序和 应用程序的不同之处主要表现在 小程序不能单独运行, (1)Java小程序不能单独运行,它必须依附于一个网页并嵌入其中才 ) 小程序不能单独运行 能运行,要浏览网页还需要有浏览器; 能运行,要浏览网页还需要有浏览器;而应用程序是可以独立运行的程 只要有支持Java的虚拟机,它就可以独立运行而不需要其它文件 的虚拟机, 序,只要有支持 的虚拟机 的支持。 的支持。 小程序必须继承自Applet类。Applet类实现了建立 类实现了建立Java小 (2)Java小程序必须继承自 ) 小程序必须继承自 类 类实现了建立 小 程序和浏览器之间联系关系的接口。当然, 程序和浏览器之间联系关系的接口。当然,Applet类也是 Object类的 类也是 类的 子类。 子类。 小程序中没有应用程序中的main()方法,因为 方法, (3)Java小程序中没有应用程序中的 ) 小程序中没有应用程序中的 方法 因为Java小程序 小程序 不需要也不能独立运行。 不需要也不能独立运行。 在执行过程方面, 小程序和Java应用程序的不同主要表现在: 应用程序的不同主要表现在: 在执行过程方面,Java小程序和 小程序和 应用程序的不同主要表现在 Java应用程序一般是在本地机上运行,而Java小程序一般存放在服务 应用程序一般是在本地机上运行, 应用程序一般是在本地机上运行 小程序一般存放在服务 器上,它是根据本地机的请求被下载到本地机后, 器上,它是根据本地机的请求被下载到本地机后,然后才在本地机上运 行
Java语言程序设计 第十一章Java Applet
第十一章 Java Applet
第12章 Java Applet
本章导读 1.Java Applet的运行原理 2.Java Applet中播放声音 3.网页向Java Applet传值 4.Java Applet中使用AWT组件 5.Java Applet中使用Swing组件 6.Java Applet中绘制图形 7.Java Applet中绘制图像 8.Java Applet 播放幻灯片和动画 9.Java Applet的网络功能
为:
1) 浏览器内置的JVM创建了主类Boy对象后,立刻通知 这个对象调用init()方法完成必要的初始化工作。初始 化 的主要任务是创建所需要的对象、设置初始状态、装载图 像、设置参数等。
2)对象仅接着自动调用start()方法。在程序的执行过程中, init()方法只被调用执行一次。但start()方法将多次被自动 调用执行。除了进入执行过程时调用方法start()外,当用 户从Java Applet所在的Web页面转到其他页面,然后又返 回时,start()将再次被调用,但不再调用init()方法。
(2)Java Applet的生命周期
一个Java Applet的执行过程称为这个Java Applet的生 命 周期。一个Java Applet的生命周期会涉及如下方法 的调用执行:
init ()、start()、stop()、destroy()、paint(Graphics g)
JVM创建的主类Boy的对象在生命周期内将有下列行
3.关于repaint()方法和update(Graphics g)
repaint()方法和update(Graphics g) 是Component 类中的一个方法。当调用repaint方法时,程序首先清除 paint()方法以前所画的内容,然后再调用paint()方法。 实 际 上 当 我 们 调 用 repaint() 方 法 时 , 程 序 自 动 去 调 用 update(Graphics g)方法,浏览器的Java运行环境产生 一个Graphics类的实例,传递给方法update(Graphics g)中的参数 g,这个方法的功能是:清除paint()方法以 前所画的内容,然后再调用paint方法。因此我们可以在 子类中重写update方法(即隐藏父类的方法),根据需 要来清除哪些部分或保留哪些部分。
实验6 图形用户界面和Applet编程实验计算机
实验6 图形用户界面和Applet编程实验一、实验目的:1.掌握Java中图形用户界面的编程2.掌握布局管理器和事件的响应方法。
3.掌握Applet多媒体开发方法二、实验环境(硬/软件要求):通过局域网互联,安装Windows 2000/XP操作系统环境的JDK 1.5.0(或以上版本),Jcreater Pro或JBuilder 9、eclipse。
三、实验内容:编写简单的图形用户界面并进行事件处理;编写程序熟悉常见组件的使用;编写程序进行图形化显示;编写程序进行Applet多媒体开发。
四、实验主要步骤:1 编写一个算数测试小软件。
点击获取题目进行随机出题,点击确认答案判断答题正确与否。
一次可出多题,可以判断答案对错。
2 编写一个班级推选优秀生的软件,可列出参与推优的学生名单,能够显示当前投票人数以及每名候选者得票数,如果同时能够图形化显示得票数更佳。
3编写一个程序,画出一辆小车图案。
思考是否能让小车平行移动?如何移动?4编写一个Applet程序,在网页中同时显示自己的生活照和播放一段音乐。
五、实验报告形式(纸质/电子):1.纸质(实验报告),可打印。
试验结果截图打印出来,附在试验报告后2.电子(程序源代码、运行结果)3.回答下述问题有几种窗体布局管理器,各有何不同?六、评分标准:1.能否自如地设计完成要求验证的内容。
异常的处理是否恰当。
2.程序设计的风格,是否规范。
3.各个程序的源代码,要求对代码行进行适当地注释说明;4.上机实验的态度是否认真,实验报告书写是否规范完整。
1、import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.FlowLayout;import java.awt.Font;import java.awt.GridLayout;import bel;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Random;import javax.swing.*;import javax.swing.GroupLayout.Alignment;class randomtimu{double x1;double x2;char yunsuan;final char[] Yun=new char[]{'+','-','*','/'};double result;String errorString="";public randomtimu(){x1=Math.random()*100;x2=Math.random()*100;yunsuan=Yun[(int)(Math.random()*4)];switch (yunsuan){case'+':result=x1+x2;break;case'-':result=x1-x2;break;case'*':result=x1*x2;break;case'/':if(x2==0){errorString="error";}else {result=x1/x2;}break;default:break;}}}public class test6 extends JFrame{private JPanel contentPane;JTextField jTextField=new JTextField(10);JTextField jTextField3=new JTextField(10);JTextField jTextField4=new JTextField(10);JLabel jLabel=new JLabel("+",JLabel.CENTER);JLabel jLabel2=new JLabel("=",JLabel.CENTER);JLabel jLabel3=new JLabel("");double result=0;public static void main(String[] args){new test6().setVisible(true);}/*** Create the Frame.*/public test6(){setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Container container=getContentPane();setBounds(500,100,600,150);setLayout(new BorderLayout());JPanel jPanel=new JPanel();jPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 10, 10));JPanel jPanel2=new JPanel();JButton jButton2=new JButton("确认答案");jPanel2.add(jButton2);JButton jButton=new JButton("获取题目");jPanel.add(jButton);jPanel.add(jTextField3);jTextField3.setSize(20,10);jPanel.add(jLabel);jLabel2.setFont(new Font("黑体", Font.BOLD, 18));jPanel.add(jTextField);jPanel.add(jLabel2);jLabel.setFont(new Font("黑体", Font.BOLD, 18));jPanel.add(jTextField4);container.add(jPanel,BorderLayout.NORTH);container.add(jPanel2);jPanel2.add(jLabel3);jButton.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){randomtimu randomtimu1=new randomtimu();jTextField4.setText("");jLabel3.setText("");jTextField3.setText(String.format("%.2f",randomtimu1.x1));jTextField.setText(String.format("%.2f",randomtimu1.x2));jLabel.setText(randomtimu1.yunsuan+"");if(randomtimu1.errorString.equals("error")){JOptionPane.showMessageDialog(null, "除数不能为零");}else {result=randomtimu1.result;}}});jButton2.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){if(jTextField4.getText().equals("")||jTextField4.getText()==null) {JOptionPane.showMessageDialog(null, "答案不能为空");}else {doublestring=Double.parseDouble(jTextField4.getText());String answer="正确结果是"+String.format("%.2f",result);if(Math.abs(string-result)<0.01){answer="答案正确"+answer;}else {answer="答案错误"+answer;}jLabel3.setText(answer);}}});}}2、运动的迷你小车外加图像放大功能import java.awt.BorderLayout;import java.awt.Canvas;import java.awt.Container;import java.awt.FlowLayout;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Image;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JSlider;import javax.swing.WindowConstants;import javax.swing.event.ChangeEvent;import javax.swing.event.ChangeListener;public class drawcar extends JFrame{ Graphics g;Container container;JSlider jsliter11=new JSlider();ImageIcon icon=newImageIcon("http://10.102.14.234:8080/Classic_Car_Icons_005.png"); //我笔记本Tomcat服务器的照片;Image img=icon.getImage();JButton jButton1=new JButton("开始");JButton jButton2=new JButton("暂停");drawpicture dra;int x1=0;int y1=0;Boolean flag=true;public drawcar(){picture();}public void picture(){jsliter11.setMaximum(100);jsliter11.setMinimum(1);jsliter11.setValue(5);dra=new drawpicture();jsliter11.addChangeListener(newjavax.swing.event.ChangeListener(){public voidstateChanged(javax.swing.event.ChangeEvent e){dra.repaint();}});setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);setBounds(500,50,500,500);container=getContentPane();setTitle("迷你小车(黄开浪)");container.add(dra,BorderLayout.CENTER);container.add(jsliter11,BorderLayout.NORTH);JPanel jpanel2=new JPanel();jpanel2.setLayout(new FlowLayout(10, 10,10));jpanel2.add(jButton1);jpanel2.add(jButton2);container.add(jpanel2,BorderLayout.SOUTH);jButton1.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){flag=true;Thread thread=new Thread(new Runnable(){@Overridepublic void run(){while(flag){if(x1<500){x1=x1+20;}else {x1=0;}try{Thread.sleep(100);}catch (InterruptedException e){// TODO自动生成的 catch 块e.printStackTrace();}dra.repaint();}}});thread.start();}});jButton2.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){flag=false;}});}class drawpicture extends Canvas{public void paint(Graphics g){super.paint(g);Graphics2D gd=(Graphics2D) g;int newx=0;int newy=0;float value=jsliter11.getValue();newx=(int)(value*img.getWidth(this)/100);newy=(int)(value*img.getHeight(this)/100);//gd.rotate(Math.toRadians(5));gd.drawImage(img,x1,y1,newx,newy,this);}}public static void main(String args[]){new drawcar().setVisible(true);}}3、import java.awt.BorderLayout;import java.awt.Canvas;import java.awt.Color;import java.awt.Container;import java.awt.FlowLayout;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.GridLayout;import java.awt.Paint;import java.awt.Stroke;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTable;import javax.swing.WindowConstants;import javax.swing.table.DefaultTableModel;import javax.swing.table.TableColumn;import javax.swing.table.TableColumnModel;import javax.swing.text.StyledEditorKit.BoldAction;public class tuiyou extends JFrame{Graphics g;JButton jButton1=new JButton("增加选手");JButton jButton3=new JButton("删除选手");JButton jButton2=new JButton("画图");drawpicture dra;DefaultTableModel defaultModel = null;JTable jTable1;int x;String col[]={"人数","竞选一号","竞选二号","竞选三号"};String row[][]={{"人数","竞选一号","竞选二号","竞选三号"},{"票数","100","500","700"}};public void main(){new tuiyou();}/*2 编写一个班级推选优秀生的软件,* 可列出参与推优的学生名单,能够显示当前投票人数以及每名候选者得票数, * 如果同时能够图形化显示得票数更佳。
java论文学习心得图形界面(精品)
java图形化用户界面及Applet学习总结一、javaAppletApplication和Applet是Java程序的两种基本形式。
Applet是特殊的Java程序,它不需要专门的解释器来执行它,相对于Java Appliction 的解释器,如JDK的java.exe,VJ++的jview.exe,Java Applet的解释器就是Internet的浏览器,确切地讲就是兼容Java的Internet浏览器。
Applet的工作原理:1,.class和HTML保存在服务器2,当浏览器向服务器请求下载嵌入了Applet的HTML文件时。
3,下载到客户端后,由浏览器解释HTML中的各种标记并显示在用户屏幕上,当浏览器遇到HTML文件中的一个特殊标记时,表明嵌有Applet程序,浏览器会根据Applet名字和位置把其字节码文件从WWW服务器上下载到本地。
4,利用浏览器本身拥有的Java解释器执行该字节码。
Applet类的使用:Java Applet程序必须有一个主类,其父类是系统的Applet类,正是通过这个类才能完成Applet程序与浏览器的配合存在于java.applet包中,从继承结构上说属于用户图形界面的java.awt包,是系统类java.awt.Panel的子类,由于Applet类的特殊,系统专门为它建立了一个java.applet 包Applet类是Panel的子类Panel类的作用:(1)包容和排列其他的界面元素,如按钮、对话框等;(2)响应它所包容范围之内的事件,或把事件向更高层次传递。
Applet类的作用:Applet在继承上述作用的基础上,还具有一些与浏览器和Applet 生命周期有关的专门方法Applet类的主要方法:1、完成初始化操作的init()方法Applet的字节码文件从WWW服务器下载后,浏览器将自动创建一个Applet 类的实例并调用它从Applet类那里继承来的init()方法。
第十一章 GUI编程
第十一章: GUI编程一.GUI -- Graphical User InterfaceAWT (抽象窗口工具集) AbstractWindow Toolkit为简单的applet程序设计AWT没有提供足够的桌面端的程序所需的特性它不适宜用来构建丰富的桌面图形界面SwingSwing是AWT的扩展和功能加强是构建java图形界面标准的APISWT (Standard Widget Toolkit)是一个开源的GUI编程框架SWT是IBM为它的Eclipse集成开发环境而开发的图形用户界面工具AWTAWT(Abstract Window Toolkit)包括了很多类和接口,用于Java Application 的GUI (Graphics User Interface 图形用户界面)编程。
GUI的各种元素(如:窗口,按钮,文本框等)由Java 类来实现。
AWT所涉及的类一般在java.awt包及其子包中。
Container和Component是AWT中的两个核心类。
Modal ModelessComponent & ContainerJava的图形用户界面的最基本组成部分是Component ,Component 类及其子类的对象用来描述以图形化的方式显示在屏幕上并能与用户进行交互的GUI元素,例如,一个按钮,一个标签等。
一般的Component对象不能独立地显示出来,必须将“放在”某一的Container对象中才可以显示出来。
Container是Component子类,Container子类对象可以“容纳”别的Component 对象。
Container对象可使用方法add(..)向其中添加其他Component对象。
Containter是Component的子类,因此Containter对象也可以被当作Component对象添加到其他Container对象中。
有两种常用的Containter:Window: 其对象表示自由停泊的顶级窗口Panel: 其对象可作为容纳其它Component对象,但不能独立存在,必须被添加到其它Containner中(如Window 或Applet)FrameFrame是Window的子类,由Frame或其子类创建的对象为一个窗体。
java图形界面设计含答案
java图形界面设计含答案十一章图形用户界面程序设计入门一.选择题:1. 容器Panel和applet缺省使用的布局编辑策略是 BA、BorderLayoutB、FlowLayoutC、GridLayoutD、CarLayout2. .applet类的直接父类是: BA、Component类B、Container类C、Frame类D、Panel类3. .Swing与AWT的区别不包括 DA、Swing是由纯Java实现的轻量级构件B、Swing没有本地代码C、Swing不依赖操作系统的支持D、Swing支持图形用户界面4. 在编写Java applet程序时,若需要对发生事件作出响应和处理,一般需要在程序的开头写上 B _语句。
A、import java.awt.*;B、import java.applet.*;C、import java.io.*;D、import java.awt.event.*;5. 下面哪个操作是applet可以做的? BA、读取客户端部分系统变量B、读取客户端文件C、在客户端主机上创建新文件D、在客户端装载程序库6. 在Java中,所有类的根类是 AA./doc/302358554.html,ng.Object B./doc/302358554.html,ng.ClassC.java.applet.Applet D.java.awt.Frame7.在JAVA中实现图形用户界面可以使用组建AWT和组件 AA、swingB、SwingC、JOptionPaneD、import8.在JAVA中,一般菜单格式包含有下列类对象 DA、JMenuBarB、JMenuC、JMenuItemD、JMenuBar、JMenu、JMenuItem9.JAVA中提供了多种布局对象类。
其中使用卡片式布局的是 DA、FlowLayoutB、BoederLayoutC、BoxLayoutD、CardLayout10. 下列关于Applet的叙述中,错误的是 AA、Applet是Java类,所以可以由JDK中的解释器java.exe直接解释运行B、Applet应该定义为java.applet.Applet类或javax.swing.JApplet类的子类C、Applet与Application的主要区别在执行方式上D、通过在HTML文件中采用标记可以向Applet传递参数11 与Applet生命周期相关的方法的数量是 AA、4种B、3种C、2种D、5种12下列关于Applet的叙述中,错误的是 AA、Applet是Java类,所以可以由JDK中的解释器java.exe直接解释运行B、Applet应该定义为java.applet.Applet类或javax.swing.JApplet类的子类C、Applet与Application的主要区别在执行方式上D、通过在HTML文件中采用标记可以向Applet传递参数13 java中对Applet设置了严格的安全限制。
Java实用教程 第11章 AWT图形用户界面编程
fr.add(p1, BorderLayout.NORTH);
// 将p1添加到窗口NORTH区域(即顶部)
Panel p2 = new Panel();
// 创建面板p2
p2.setLayout(new GridLayout(4, 5, 3, 3));
// 设置p2使用GridLayout布局
String[] name = {"7", "8", "9", "÷", "√", "4", "5", "6", "×", "%"
AWT容器
Window和Frame
Window和Frame
Window有两个子类:Frame和Dialog。Frame带有标题,而且可以调整大小。Dialog可以被移动, 但是不能改变大小。Frame有一个构造方法Frame(String title),通过它可以创建一个以参数为标题 的Frame对象。Frame的add()方法向容器中加入其他组件。Frame被创建后是不可见的,必须通过 以下步骤使它成为可见。
setLocation()、setSize()或setBounds() 方法,为它们在容器中一一定位。
布局管理器
1.流式布局管理器
FlowLayout是把组件从左向右、从上向下,一个接一个地放到容器中,组件之间的默认间隔 (水平和垂直)为5个像素,对齐方式为居中。组件的大小由布局管理器根据组件的最佳尺寸 来决定。 FlowLayout的构造方法:
, "1", "2", "3", "-", "1/x", "0", ".", "C", "+", "±"};
图形界面
单选按钮
文本区
14
按钮
2、AWT中的容器组件
① 容器(container)组件是可以存放其它组件的区域。用 户可以把各种组件放入到容器中。 ② AWT用Container类来定义最基本的容器,所有可以作为容 器的窗口对象都是Container类的实例或子类所生成的对 象。 ③ AWT提供了四个容器类:两个常用容器是框架(Frame类) 和面板(Panel类)。框架是一个带有边框的独立的窗口。 面板是包含在窗口中的一个不带边框的区域。 ④ 使用add()方法可以向容器中添加组件,可在容器上进行 绘制和着色。
public Rectangle getBounds() 返回组件外框矩形的范围,这个范围定义了组件的宽 、高和相对其容器的坐标位置。 public void setBounds(int x, int y, int width, int height) public void setBounds(Rectangle r) 设置组件的位置、宽度和高度,可用于移动组件或改 变其大小。除非此组件的容器没有使用布局管理器,否则 这两个方法不生效。
Label( )
Label(String text ) Label(String text, int align)
21
标签程序举例:
01 02 03 05 06 07 08 10 11 15 18 19 20 21 // 在窗口中加入标签对象 import java.awt.*; public class LabelTest { static Frame frm=new Frame("Label class"); // 创建标签对象lab static Label lab=new Label (“Hello Java”, Label.LEFT); public static void main(String args[ ]) { frm.setSize(200,150); lab.setBackground(Color.yellow); // 设置标签底色为黄色 lab.setForeground(Color.blue); // 设置标签文字为蓝色 frm.add(lab); frm.setVisible(true); } }
11 GUI
18/56
2.常用组件
2.3 JPanel
import java.awt.*; import javax.swing.*;
public class TestJFrameJPanel
{ public static void main(String args[]) { JPanel panel=new JPanel(); panel.setBackground(Color.GREEN); JFrame frame=new JFrame("窗口名称"); frame.setBackground(Color.BLUE); frame.getContentPane().add(panel); frame.add(panel); frame.setVisible(true); } }
设置缺省的关闭方式: frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
17/56
2.常用组件
2.2 JFrame
import java.awt.*; import javax.swing.JFrame; public class TestFrame { public static void main(String args[]) { JFrame f=new JFrame("My First Test"); f.setSize(300, 200); f.setBackground(Color.red); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.getContentPane().setBackground(Color.blue); f.setVisible(true); } }
图形化用户界面和Applet
图形化用户界面和Applet12计本2班侯亚飞1204012018Java语言的程序有两种基本形式,一种是Application程序,另一种是Applet 小程序。
Applet可以翻译为小应用程序,Java Applet就是用Java语言编写的这样的一些小应用程序,它们可以直接嵌入到网页中,并能够产生非凡的效果。
包含Applet的网页被称为Java-powered页。
可以称其为Java支持的网页。
当用户访问这样的网页时, Applet被下载到用户的计算机上执行,但前提是用户使用的是支持Java的网络浏览器。
由于Applet是在用户的计算机上执行的,因此它的执行速度不受网络带宽或者Modem存取速度的限制。
用户可以更好地欣赏网页上Applet产生的多媒体效果。
在Java Applet中,可以实现图形绘制,字体和颜色控制,动画和声音的插入,人机交互及网络交流等功能。
Applet还提供了名为抽象窗口工具箱(Abstract Window Toolkit, AWT)的窗口环境开发工具。
AWT利用用户计算机的GUI元素,可以建立标准的图形用户界面,如窗口、按钮、滚动条等等。
目前,在网络上有非常多的Applet范例来生动地展现这些功能,读者可以去调阅相应的网页以观看它们的效果。
Applet与Application区别概述:Java Application:只有一个程序入口—main方法,通过JVM调用执行。
Java Applet:是嵌入到网页中由浏览器调用执行的,其中不必包含main方法。
小应用程序的书写格式:import java.applet.*;public class MyApplet extends Applet{}将小应用程序源文件编译成字节码文件,编写html文件,使用<applet> 标签将字节码文件嵌入其中,用浏览器打开html文件或者用appletviewer小程序浏览器。
图形化用户界面和Applet解析
图形化用户界面和Applet12计本2班侯亚飞1204012018Java语言的程序有两种基本形式,一种是Application程序,另一种是Applet 小程序。
Applet可以翻译为小应用程序,Java Applet就是用Java语言编写的这样的一些小应用程序,它们可以直接嵌入到网页中,并能够产生非凡的效果。
包含Applet的网页被称为Java-powered页。
可以称其为Java支持的网页。
当用户访问这样的网页时, Applet被下载到用户的计算机上执行,但前提是用户使用的是支持Java的网络浏览器。
由于Applet是在用户的计算机上执行的,因此它的执行速度不受网络带宽或者Modem存取速度的限制。
用户可以更好地欣赏网页上Applet产生的多媒体效果。
在Java Applet中,可以实现图形绘制,字体和颜色控制,动画和声音的插入,人机交互及网络交流等功能。
Applet还提供了名为抽象窗口工具箱(Abstract Window Toolkit, AWT)的窗口环境开发工具。
AWT利用用户计算机的GUI元素,可以建立标准的图形用户界面,如窗口、按钮、滚动条等等。
目前,在网络上有非常多的Applet范例来生动地展现这些功能,读者可以去调阅相应的网页以观看它们的效果。
Applet与Application区别概述:Java Application:只有一个程序入口—main方法,通过JVM调用执行。
Java Applet:是嵌入到网页中由浏览器调用执行的,其中不必包含main方法。
小应用程序的书写格式:import java.applet.*;public class MyApplet extends Applet{}将小应用程序源文件编译成字节码文件,编写html文件,使用<applet> 标签将字节码文件嵌入其中,用浏览器打开html文件或者用appletviewer小程序浏览器。
Java编程基础及应用(第2版)教学课件第11章基于swing图形用户界面
§11.4.1 事件处理模式
1.事件源 :能够产生事件的对象都可以成为事件源 . 2.监视器 :事件源通过调用相应的方法将某个对象注册为自己的监视器。 对于文本框,这个方法是:addActionListener(监视器);
7
例子2
例子2中在主类Example11_2的main方法中,用 JFrame的子类WindowMenu创建一个含有菜单的窗口, 效果如图11.3。
8
§11. 3 常用组件与布局 可以使用JComponent的子类创建各种组件。
利用组件可以完成应用程序与用户的交互及事 件处理等。
9Hale Waihona Puke §11.3.1 常用组件选项卡窗格是轻容器,默认布局是CardLayout布局。 (2) 向选项卡窗格添加组件 使用
add(String text,Component c); 方法将组件c添加到JTabbedPane窗格中,并指定和组件c对应的选项卡的文本提示是text。
例如: card.add("这是按钮",new JButton("确定")); 向选项卡窗格添加一个组件时,JTabbedPane窗格就会自动指定给该组件一个选项卡, 单击该选项卡,JTabbedPane窗格将显示对应的组件。选项卡窗格自带的选项卡默认地在 该选项卡窗格的顶部,从左向右依次排列,选项卡的顺序和所对应的组件的顺序相同。 JTabbedPane(int tabPlacement) 创建的选项卡窗格,选项卡的位置由参数tabPlacement指定,该参数的有效值为 JTabbedPane.TOP、JTtabbedPane.BOTTOM、JTabbedPane.LEFT和JTabbedPane.RIGHT。
12
面向对象程序设计-第十一章-图形用户界面设计
4.菜单
在Java中有菜单MenuBar(菜单条)、Menu(菜 单)和MenuItem(菜单项)3个类来完成向窗口添加 菜单栏。
菜单的建立步骤:
创建一个MenuBar对象,将其置于一个可容纳菜单的容器。 在菜单条中添加菜单。 向菜单添加内容,添加内容可以是菜单项或菜单选项。
11
4.菜单
例:菜单例子
20
6.事件处理机制
2.继承事件适配器Fra bibliotekclass MyListener extends WindowAdapter{
public void mouseClicked(WindowEvent e){
System.out.println(“鼠标点击了”);
}
}
class MouseAdapterTest extends Frame{
AWT可以生成各种标准图形界面于处理图形界面的各 种事件,独立于外设系统,可以应用于不同的平台系统, 实现了Java的跨平台。
4
2.容器
容器的其实就是用来在窗体程序中用来存放组件的,同 时可以通过容器实现内容的布局。Java GUI提供两种主要 的容器的类型,即Window和Panel。
Java AWT中有3种常用的容器:Frame、Panel和Applet。 1.Frame(框架) 例:Frame f = new Frame(“Frame窗体”);
14
5.AWT组件库
7.下拉列表Choice
8.列表List的创建 List(int n,Boolean b):n显示选项,b为ture则多项,
false表示只能一项。 List list = new List(3,true) list.add(“大学英语”);
第11章 applet
Applet基本上是为部署在Web上而设 应用程序是为作为独立程序工作而 计的 设计的 Applet是通过扩展 java.applet.Applet 类创建的 Applet 通过appletviewer或在支持 Java的浏览器上运行 Applet 的执行从 init() 方法开始 应用程序则不受这种限制 应用程序使用Java解释器运行 应用程序的执行从 mai中输出文字
1.文字输出 • drawBytes(byte bt[],int offset,int length,int x,int y) • drawChars(char ch[],int offset,int length,int x,int y) • drawString(String str,int x,int y) 2.字体设置 Font(String name,int style,int size); 3.字体大小设置FontMetrics getAscent()、getDescent()、getHeight()、 getLeading() 。
16
11.3.3 在Applet中使用颜色
1.构造方法:
public Color(int r,int g,int b) public Color(float r,float g,float b) public Color(int rgb)
2.其他方法:
setColor(Color c),getColor(), setBackground(Color c),getBackground(), setForeground(Color c) ,getForeground()
6
11.1.3 Applet示例2-2
• Applet源文件首先用 Java 编译器编译:
JAVA图形界面教案
第十一章、图形用户界面总论:本章学习图形界面的初步知识,包括图形界面的概述,容器类,布局管理器,辅助类,绘图等知识点。
1、图形界面的概述Java中有两个包负责图形界面的构建:swing和awt。
awt包中的类主要是调用当前操作系统的组件来实现GUI编程,特点是速度快,但是跨平台性很差,称为重型组件。
swing包中的类主要是模拟组件来实现GUI编程,由于是模拟组件,所以他的速度较慢,但跨平台性很好.称为轻型组件,swing包的类都以J开头,以示和awt包中的类进行区分2、GUI类分为三组:容器类(Jframe、jpanel、jdialog)、组件类(Jbutton、jlabel)和辅助类(Font、graphics、color、dimension、fontmetrics)这些类都是java设计人员精心设计的类,供我们直接使用。
3、所有图形界面组件的关系如下:Awt中的component类是所有swing和awt类的根类Awt中的container类是所有容器类的根类Swing中的所有组件类(组件)均继承自jcomponent类第一节.容器类与布局管理器1、容器,即可以盛放其他组件的组件。
主要有如下几个:●Container:一个容器类,他的实例常用作接受其他的容器引用。
●Jframe:框架(窗体),类似于Windows系统中的窗口。
●Jdialog:用来设计对话框。
2、JFrame类该类的对象即是一个窗口,其构造方法可以带参数(窗体名字),也可以不带参数。
该类有一系列的方法可以调用。
见下例:例子:JFrame的基本用法(1)生成一个窗口(2)能够关闭生成的窗口(3)让窗口居中(4)加上一个按钮(5)窗口和按钮上的文字●所有的图形界面类都是先生成对象,然后通过对象的方法来设置界面●每个类方法众多,记住最常用的,知道有其他的,边用边学。
要随时查看API手册。
●本例子的方法有:设置大小,添加组件,删除组件,设置位置,关闭窗口等●Dimension是一个类,用来把一个对象的高和宽封装到一个Dimension对象中●Toolkit是一个工具类,能够提供一系列的方法。
图形界面的基本概念
图形界⾯的基本概念
1) AWT(Abstract Window Toolkit),抽象窗⼝⼯具集,第⼀代的Java GUI组件,是重量级的。
2) Swing,不依赖于底层细节,轻量级的组件。
GUI全称是Graphical User Interface,即图形⽤户界⾯。
根据作⽤GUI组件可分为基本组件和容器。
组件⼜称构件,诸如按钮、⽂本框之类的图形界⾯元素,容器其实是⼀种⽐较特殊的组件,可以容纳其它组件,如窗⼝、对话框等,所有的容器类都是java.awt.Container的直接或间接⼦类。
AWT提供基本的GUI组件,⽤在所有的Java applets[applets已经很少⽤了]及应⽤程序中
1、具有可以扩展的超类,它们的属性是继承的
2、确保显⽰在屏幕上的每个GUI组件都是抽象类组件的⼦类
3、Container[容器,容器本⾝也可以看做是⼀个组件],它是Component的⼀个⼦类,⽽且包括两个主要⼦类
A:Panel [⾯板]
B:window [窗⼝]
SUN公司提供的⽤于图形界⾯编程(GUI)的类库。
基本的AWT库处理⽤户界⾯元素的⽅法是把这些元素的创建和⾏为委托给每个⽬标平台上(Windows、Unix、Macintosh等)的本地GUI⼯具进⾏处理。
例如:如果我们使⽤AWT在⼀个Java窗⼝中放置⼀个按钮,那么实际上使⽤的是⼀个具有本地外观和感觉的按钮。
这样,从理论上来说,我们所编写的图形界⾯程序能运⾏在任何平台上,做到了图形界⾯程序的跨平台运⾏。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学习重点: 学习重点:
容器的概念和作用 图形界面组件之间的层次关系 事件机制 Applet的生命周期 Applet的生命周期
第11章 图形界面和 章 图形界面和Applet
Java的图形界面 11.1 Java的图形界面 AWT与 11.1.1 AWT与Swing 11.1.2 图形界面元素 Swing组件及其之间的层次关系 11.2 Swing组件及其之间的层次关系 11.2.1 一个例子 11.2.2 容器 11.2.3 布局管理
常用的组件如下: 常用的组件如下:
复选框(Checkbox) 复选框(Checkbox) 单选按钮(CheckboxGroup (CheckboxGroup或 单选按钮(CheckboxGroup或RadioButton) 列表(List (List或 列表(List或Choice) 文本编辑区(Edit TextField, (Edit或 文本编辑区(Edit或TextField,TextArea) 标签(Label) 标签(Label) 按钮(Button) 按钮(Button) 菜单(Menu) 菜单(Menu)
11.1.2 图形界面元素
图形用户界面通常由一些图形化的元素组成,这些元素通常称为 图形用户界面通常由一些图形化的元素组成, 控件(Controls) 常见的控件包括按钮、滚动条、文本框等。 (Controls), 控件(Controls),常见的控件包括按钮、滚动条、文本框等。控件 允许用户与程序进行交互, 允许用户与程序进行交互,并向用户提供可视化的程序状态的反 不过,控件并不是单独存在的,而必须放在容器(Container) 馈。不过,控件并不是单独存在的,而必须放在容器(Container) 容器一般用来包容所有的控件, 中,容器一般用来包容所有的控件,并且控制其中所有组件的布 容器本身也是组件,因此,容器之中也可以包含容器。 局。容器本身也是组件,因此,容器之中也可以包含容器。
11.2.1 一个例子
一个Swing应用程序的例子, SwingApplication, 一个Swing应用程序的例子,即SwingApplication,其图形界面 Swing应用程序的例子 如图所示。 如图所示。
这个程序的功能是用户每单击一次按钮, 这个程序的功能是用户每单击一次按钮,下面的标签中的数字就变化一 以便记录下来按钮被单击的次数。 次,以便记录下来按钮被单击的次数。
例如: 例如:
Swing的按钮和标签可以显示图像或者图片,而不仅仅像AWT那样只能显示 文 本。 绝大多数的Swing组件都可以任意修改其边界。 在Swing中,改变组件的外观或者行为可以通过调用其方法,或者创建其子类。 Swing组件不一定要是长方形,例如,按钮也可以是圆形。 信息交互技术使读者可以很容易的从Swing组件中获得信息。例如,从按钮或者 标签上获得它们显示出来的文本。 Swing允许定义用户的界面风格,而AWT永远只能显示本地平台的界面风格。 很多Swing组件都有自己的用于控制其状态的状态模型。例如,JSlider使用 BoundedRangeModel对象来存储自己当前的值以及合法的取值范围,这些模型通 常都是自动建立的,除非有特殊需求,否则不用花费过多的精力来管理它。
11.3 事件机制 11.3.1 概述 11.3.2 常用事件处理 11.3.3 自定义事件 Applet与 11.4 Applet与HTML HTML简介 11.4.1 HTML简介 Applet的生命周期 11.4.2 Applet的生命周期 Applet的其他重要方法 11.4.3 Applet的其他重要方法 Applet遇到的限制 11.4.4 Applet遇到的限制 11.5 练习题
Swing与AWT的不同之处 3. Swing与AWT的不同之处
从组件名称上看出来,所有Swing组件都以J开头,例如Jbutton和 JPanel等,相应的组件在AWT中分别称为Button和Panel。 Swing包称为javax.swing,而AWT包称为java.awt。 Swing组件全部是由纯Java编写的,因此,Swing可以有更丰富的功能, 并且可以与JDK更好地结合。
曾经使用过AWT或者已经习惯于使用 或者已经习惯于使用AWT,在学习使用 曾经使用过 或者已经习惯于使用 ,在学习使用Swing编写 编写 用户界面时,应该注意下面几点: 用户界面时,应该注意下面几点:
不用和Swing组件一起使用“重量级”组件,所谓“重量级”组件指所 有可以直接使用的AWT组件(例如Menu和ScrollPane)以及所有从AWT Canvas和Panel类继承而来的组件。 Swing组件和线程一起使用时并不是非常安全的,如要使用事件机制外 的方法修改一个可见的Swing组件,例如调用其setText()方法,最好进 行一些特殊处理,使这个修改动作由事件分派线程来完成。不过好在大 多数Swing组件的修改方法都是通过事件机制来处理的。 所有包含Swing组件的窗口和Applet,其最顶层的容器组件必须是Swing 组件。例如,一个主窗口应该是一个Jframe,而不是Frame。 不要直接向最顶层容器,如JFrame添加组件,而应该将组件添加在 JFrame自带的另外一个容器中,这个容器称为content pane。
上述这些组件之间的关系如图所示
JFrame
content pane
JPane1
JButton
JPabe1
每个顶层容器都有一个中间容器称为content pane,绝大多数程序 中,不需要关心这个容器与顶层容器之间的关系。这个content pane包含了所有窗口内的可视组件,假如顶层容器中含有菜单,这 个菜单是不包含在content pane中的。向容器中添加组件需要使用 add()方法,add()方法至少需要一个参数就是要添加的组件,有些 时候需要在调用该方法时提供布局信息。
11.1 Java的图形界面 的图形界面
Java中有两套实现图形界面的机制,早期版本中AWT(Abstract 中有两套实现图形界面的机制,早期版本中 中有两套实现图形界面的机制 Windows Toolkits,抽象Windows工具包)和现在常用的Swing。 Windows工具包 Swing。 ,抽象Windows工具包)和现在常用的Swing
3. 用户自定义部分
这一部分是为编程人员添加的一些内容,一般起到装饰、美化界 这一部分是为编程人员添加的一些内容,一般起到装饰、 面的效果,所以它也不响应用户的操作。 面的效果,所以它也不响应用户的操作。它们通常是一些几何图形 和使用标志等。 和使用标志等。
11.2ቤተ መጻሕፍቲ ባይዱSwing组件及其之间的层次关系 组件及其之间的层次关系
例11.1 简单的Swing应用程序 简单的 应用程序 程序代码
在这个程序中我们进行了以下几件事,请参考源程序中的粗体字。 在这个程序中我们进行了以下几件事,请参考源程序中的粗体字。 装载Swing包。 选择界面风格。 建立最顶层容器 创建按钮和标签 将组件添加到容器。 处理按钮事件和窗口事件 处理线程问题 支持信息交互技术(Assistive Tech) 一个frame 一个panel 一个button和一个label
11.2.2 容器
容器是学习Java图形界面编程中最重要的概念之一, 容器是学习Java图形界面编程中最重要的概念之一,所谓容器是 Java图形界面编程中最重要的概念之一 Java图形界面编程中最基本的元素 图形界面编程中最基本的元素, Java图形界面编程中最基本的元素,有了容器才能有其他组件的存 容器通常是分层次的, 在。容器通常是分层次的,不同层次的容器在整个图形界面的组织 过程中起着不同的作用。 过程中起着不同的作用。
11.1.1 AWT与Swing 与
1.0版的AWT所能够编写出来的图形界面可以说是非常拙劣 版的AWT Java 1.0版的AWT所能够编写出来的图形界面可以说是非常拙劣 它只能使用4种字体, 的,它只能使用4种字体,并且不能访问操作系统中现有的高级 GUI元素 同时,Java1.0版的AWT编程模型也不是面向对象的 元素。 版的AWT编程模型也不是面向对象的, GUI元素。同时,Java1.0版的AWT编程模型也不是面向对象的, 其事件机制极不成熟,使用起来也很不方便。 其事件机制极不成熟,使用起来也很不方便。 Java1.1版的AWT事件模型中得到了很好的改进, Java1.1版的AWT事件模型中得到了很好的改进,它具有了更加清 版的AWT事件模型中得到了很好的改进 面向对象的编程、遵循Java Beans的范例 的范例, 晰、面向对象的编程、遵循Java Beans的范例,以及一个可轻松 创建可视编程环境的编程组件模型等特点。 创建可视编程环境的编程组件模型等特点。
AWT仍然是学习 仍然是学习Java需要了解的一个重要部分。 需要了解的一个重要部分。 仍然是学习 需要了解的一个重要部分
首先,AWT的存在是个事实,面向对象库设计一旦公布一个组 首先,AWT的存在是个事实, 的存在是个事实 后续的版本就一定支持它,那么就一定有人使用它; 件,后续的版本就一定支持它,那么就一定有人使用它; AWT中的组件是JDK中的基本包 凡是支持Java 中的组件是JDK中的基本包, Java的浏览器一定支持 AWT中的组件是JDK中的基本包,凡是支持Java的浏览器一定支持 这些组件,而其他的包不是很新的浏览器未必能够支持,因此, 这些组件,而其他的包不是很新的浏览器未必能够支持,因此,在 编写Applet的时候,还要考虑这个问题。 编写Applet的时候,还要考虑这个问题。 Applet的时候
容器(Container) 1. 容器(Container)
容器是用来组织其他图形界面元素的最基础的单元, 容器是用来组织其他图形界面元素的最基础的单元,如一个窗 容器内部可以包含许多其他界面元素, 口。容器内部可以包含许多其他界面元素,也可以包含另一个容 这个容器再包含更多的元素。 器,这个容器再包含更多的元素。