(完整word版)Java知识总结完整版,推荐文档 联系客服

发布时间 : 星期日 文章(完整word版)Java知识总结完整版,推荐文档更新完毕开始阅读42c9f84f148884868762caaedd3383c4ba4cb456

} } UDP

import java.net.*; import java.io.*;

public class TestUDPServer {

public static void main(String args[]) throws Exception {

byte buf[] = new byte[1024];

DatagramPacket dp = new DatagramPacket(buf, buf.length); DatagramSocket ds = new DatagramSocket(5678); while(true) {

ds.receive(dp);

ByteArrayInputStream bais = new ByteArrayInputStream(buf); DataInputStream dis = new DataInputStream(bais); System.out.println(dis.readLong()); } } }

import java.net.*; import java.io.*;

public class TestUDPClient {

public static void main(String args[]) throws Exception {

long n = 10000L;

ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream dos = new DataOutputStream(baos); dos.writeLong(n);

byte[] buf = baos.toByteArray(); System.out.println(buf.length);

DatagramPacket dp = new DatagramPacket(buf, buf.length, new InetSocketAddress(\

DatagramSocket ds = new DatagramSocket(9999); ds.send(dp); ds.close(); } }

第11章 GUI编程

AWT

AWT(Abstract Window Toolkit)包括了很多类和接口,用于Java Application的GUI(Graphics User Interface图形用户界面)编程

GUI的各个元素(如:窗口,按钮,文本框等)由Java类来实现 使用AWT所涉及的类一般在java.awt包及其子包中 Container和Component是AWT中的两个核心类

Component

Button Container

TextArea

Label

Window Panel TextField

List

… Frame Dialog Applet Component&Container

Java的图形用户界面的最基本组成部分是Component,Component类及其子类的对象用来描述以图形化的方式显示在屏幕上并能与用户进行交互的GUI元素,例如,一个按钮,一个标签等

一般的Component对象不能独立的显示出来,必须将“放在”某一的Container对象中才可以显示出来

Container是Component的子类,Container子类对象可以“容纳”别的Component对象

Container对象可使用方法add(…)向其中添加其他Component对象

Container是Component的子类,因此Container对象也可以被当做Component对象添加到其他Container对象中 有两种常用的Container:

Window:其对象表示自由停泊的顶级窗口

Panel:其对象可作为容纳其他Component对象,但不能独立存在,必须被添加到其他Container中(如Window或Applet)

Frame

Frame是Window的子类,由Frame或其子类创建的对象为一个窗体 Frame的常用构造方法: Frame()

Frame(String s)创建标题栏为字符串s的窗口

setBounds(int x,int y,int width,int height):设置窗体位置和大小,x,y是左上角坐标

setLocation(int x,int y):设置窗体的位置,x,y时左上角坐标

setSize(int width,int height):设置窗体的大小,width和heigtht分别是宽度和高度

setBackground(Color c):设置背景颜色,参数为Color对象 setVisible(boolean b):设置是否可见 setTitle(String name) String getTitle()

setResizable(boolean b):设置是否可以调整大小

Panel

Panel对象可以看成可以容纳Component的空间 Panel对象可以拥有自己的布局管理器 Panel类拥有从其父类继承来的

setBounds(int x,int y,int width,int height) setSize(int width,int height) setLocation(int x,int y) setBackground(Color c)

setLayout(LayoutManager mgr)等方法

Panel的构造方法: Panel():使用默认的FlowLayout类布局管理器初始化

Panel(LayoutManager layout)使用指定的布局管理器初始化

布局管理器

在Java语言中,提供了布局管理器类的对象可以管理 管理Component在Container中的布局,不必直接设置Component的位置和大小 每个Container都有一个布局管理器对象,当容器需要对某个组件进行定位或判断其大小尺寸时,就会调用其对应的布局管理器,调用Container的setLayout方法改变其布局管理器对象 AWT提供了5种布局管理器类: FlowLayout BorderLayout GridLayout CardLayout GridBagLayout

FlowLayout

FlowLayout是Panel类的默认布局管理器

FlowLayout布局管理器对组件逐行定位,行内从左到右,一行排满后换行 不改变组件的大小,按组件原始尺寸显示组件,可设置不同的组件间距,行距以及对齐方式

FlowLayout布局管理器默认的对齐方式时居中

FlowLayout的构造方法 FlowLayout(FlowLayout.RIGHT,20,40):右对齐,组件之间水平间距20个像素,

垂直间距40个像素

FlowLayout(FlowLayout.LEFT):左对齐,水平和垂直间距为缺省值(5) FlowLayout():使用缺省的居中对齐方式,水平和垂直间距为缺省值(5)

BorderLayout

BorderLayout是Frame类的默认布局管理器 BorderLayout将整个容器的布局划分成 东(EAST),西(WEST),南(SOUTH),北(NORTH),中(CENTER)五个区域,组件只能被添加到指定的区域

如果不指定组件的加入部位,则默认加入到CENTER区

每个区域只能添加一个组件,如加入多个,则先前加入的会被覆盖

BorderLayout型布局管理器尺寸缩放原则: 南、北两个区域在水平方向缩放 东、西两个区域在垂直方向缩放 中部可在两个方向上缩放

//f.add(bn, BorderLayout.NORTH);

GridLayout布局管理器

GridLayout型布局管理器将空间划分为规则的矩形网络,每个单元格区域大小相等。组件被添加到每个单元格中,先从左到右填满一行后换行,在从上到下 在GridLayout构造方法中指定分割的行数和列数,如:GridLayout(3,4) import java.awt.*; public class Test {

public static void main(String[] args) { Frame f = new Frame(\ f.setLayout(new GridLayout(2,1));

Panel up =new Panel(new BorderLayout()); Panel down = new Panel(new BorderLayout()); f.add(up); f.add(down);

up.add(new Button(\ up.add(new Button(\

Panel upc = new Panel(new GridLayout(2,1)); up.add(upc,BorderLayout.CENTER); upc.add(new Button(\ upc.add(new Button(\

down.add(new Button(\ down.add(new Button(\