Java程序设计教程 第九章
- 格式:ppt
- 大小:645.50 KB
- 文档页数:56
Java语言程序设计第九章课后习题答案1.编写一个程序,该程序绘制一个5×9的网络,使用drawLine方法。
//NetWork类import java.awt.Graphics;import javax.swing.JFrame;public class NetWork extends JFrame{public NetWork(){// 设置窗体大小this.setSize(130, 130);//设置窗体大小不可改变this.setResizable(false);// 设置默认关闭方式,关闭窗体的同时结束程序this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 将窗体显示出来this.setVisible(true);}//横纵格之间都间隔10像素,起点在(20,40)public void paint(Graphics g){//绘制横向线for(int i=0;i<=5;i++){g.drawLine(20, 40+i*10, 110, 40+i*10);}//绘制纵向线for(int i=0;i<=9;i++){g.drawLine(20+i*10, 40, 20+i*10, 90);}}}//test9_1类public class test9_1 {public static void main(String[] args){new NetWork();}}运行结果:2.编写一个程序,该程序以不同的颜色随机产生三角形,每个三角形用不同的颜色进行填充。
//Triangle类import java.awt.Color;import java.awt.Graphics;import java.util.Random;import javax.swing.JFrame;public class Triangle extends JFrame{Random rnd = new Random();//这里定义4个三角形int[][] x=new int[4][3];int[][] y=new int[4][3];int[][] color=new int[4][3];public Triangle(){for(int i=0;i<4;i++){for(int j=0;j<3;j++){color[i][j]=rnd.nextInt(255);x[i][j]=rnd.nextInt(i*100+100);y[i][j]=rnd.nextInt(i*100+100)+50;//加50像素是为了避免顶到窗体上沿}}//窗体标题this.setTitle("随机三角形");//窗体大小this.setSize(500,500);//窗体大小不可变this.setResizable(false);//关闭窗体的同时结束程序this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//显示窗体this.setVisible(true);}public void paint(Graphics g){for(int i=0;i<4;i++){g.setColor(new Color(color[i][0],color[i][1],color[i][2]));g.fillPolygon(x[i], y[i], 3);}}}//test9_2public class test9_2 {public static void main(String[] args){new Triangle();}}运行结果:3.编写一个Applet,该程序请求用户输入圆的半径,然后显示该圆的直径、周长和面积。
第9章常用组件GUI设计9.1 Swing概述9.2 事件响应原理9.3 JLable组件9.4 JButton组件与JToggleButton组件9.5 JCheckBox和JRadioButton组件9.6 JComboBox组件9.7 JList组件9.8 JTextField与JTextArea组件9.1 Swing 概述图9.1 图形用户界面中常用的组件9.1.1 JApplet由于所有的Swing GUI组件都应该包含在JApplet小程序中,且javax.Swing.JApplet是java.applet.Applet的子类,所以本章主要介绍javax.Swing的“J组件”,应用程序均以JApplet小程序为例。
JApplet的使用与Applet小程序相似,它们与HTML文件的配合没有什么差别,差别仅在默认布局策略与个别方法的使用上,这将在讲述到有关内容时加以讨论。
9.1.2 Swing中常用的包由于Swing功能相当强大且复杂,考虑到功能分解的原则,Java系统将Swing按不同功能分为表9.1所示的若干个包,它们分别针对于不同的组件及事件。
表9.1 Swing中常用的包包名说明javax.swing最常用的包,包含了各种Swing组件的类javax.swing.border包含与Swing组件外框有关的类javax.swing.colorchooser针对Swing调色版组件(JColorChooser)设计的类javax.swing.event处理由Swing组件产生的事件javax.swing.filechooser包含针对Swing文件选择对话框(JFileChooser)所设计的类javax.swing.plaf处理Swing组件外观的相关类表9.1 Swing中常用的包javax.swing.table针对Swing组件表格(JTable)所设计的类javax.swing.textjavax.swing.text.html包含与Swing文字组件相关的类javax.swing.text.html.parserjavax.swing.text.rtfjavax.swing.tree针对Swing树状元素(JTree)所设计的类javax.swing.undo提供Swing文字组件的Redo与Undo功能9.1.3 常用组件的继承关系由于本章所述组件所使用的成员方法主要是继承其直接父类或更高层父类的成员方法,为了正确地使用这些组件,有必要了解每个组件的继承关系。
第九章Java Applet主要内容:Java Applet和Java Application的区别及Java Applet的应用9.1 Java Applet和Java Application (1)Application是独立运行的,Applet是嵌入到Web页面上的,必须在支持Java的浏览器中运行,例如,Netscape Navigator,Microsoft IE,Sun HotJava等。
(2)Application必定含有一个,并且只有一个方法main()。
Applet无方法main(),并从java.applet.Applet 继承。
(3)Application是能进行各种操作的程序,包括读/写文件操作。
但Applet 对站点的磁盘文件既不能进行读操作,也不能进行写操作。
9.2 Java Applet的生命周期1.Java Applet从建立到执行可分为四步:(1) 用Java语言编写一个Applet源程序。
(2) 把Applet源程序编译成字节码。
(3) 将字节码嵌入Web页面。
即写一个含Applet的HTML文件。
(4) 用支持Java的浏览器运行、浏览。
2.Applet的生命周期即,Java Applet的执行过程,它涉及的基本方法如下:(1)初始化 init()为Applet运行建立初始化环境,在整个Applet生命周期中,只执行一次方法init()。
(2) 启动 start()Applet被初始化后,系统会自动调用方法start()。
当进入或返回Applet所在的Web页面时,均需多次执行方法start()。
(3) 停止 stop()当浏览器离开Applet所在的Web页面转到其它页面时,Applet被停止。
(4) 删除 destory()当浏览器结束浏览时,执行方法destory(),释放Applet占用的资源。
在执行方法destory()前,先执行方法stop()。
第9章网络通信【1】java提供了哪几种网络通信模式?[解答]:基于TCP/IP协议的面向连接的通信模式,基于UDP协议的面向无连接的通信模式。
【2】java的套接字网络通信方式分为哪几种?[解答]:基于TCP/IP协议:客户端套接字,服务器端套接字。
基于UDP协议:用户数据报套接字,广播数据报套接字。
【3】什么是socket,怎样建立socket连接?建立连接时,客户端和服务器端有什么不同?[解答]:Socket就是套接字,是IP地址和端口号的组合。
当两个网络程序需要通信时,它们可以通过使用Socket类建立套接字连接。
服务器端建立Socket以后,要执行一个等待的方法,以方便客户端来连接。
客户端建立Socket以后即与服务器端进行连接,成功握手以后,双方产生同样的Socket对象。
【4】请列举常用的协议及其端口号。
[解答]:ftp 21/tcptelnet 23/tcpsmtp 25/tcphttp 80/tcppop3 110/tcpsnmp 161/udphttps 443/tcphttps 443/udppop3 110/tcp【5】试描述用Socket建立连接的基本程序框架。
[解答]:(1)客户端建立套接字对象,指定服务器IP和端口号。
(2)服务器端建立套接字,并指定端口号。
(3)服务器端监听本机的端口的状态:执行accept()方法。
(4)客户端程序在对象产生以后以及,服务器端的程序监听到有连接以后都会产生一个Socket类的实例。
(5)对这两个实例中对应的输入流和输出流进行操作,即完成通信过程。
【6】说明客户端如何与服务器端进行连接。
[解答]:TCP/IP的方式是:客户端产生Socket对象的同时产生与对应端口号的服务器连接的动作。
UDP数据报的方式是:客户端建立DatagramSocket对象,建立报文DatagramPacket对象,并指定发送的IP地址,调用socket对象的send方法进行连接并发送数据。