- 博客(82)
- 收藏
- 关注
原创 解决游戏界面闪烁的问题
在用java编程的时候,我们处理窗口中物品移动的最常见的方法是使用paint方法不断重画,但是效果不好,会产生闪烁现象,如何解决呢?再次提出双缓冲的概念:import java.awt.*;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class TankClient exte
2015-03-03 14:23:37 1816
原创 关于如何接受键盘的信息
import java.awt.*;import java.awt.event.*;public class TestKey { public static void main(String[] args) { MyFrame22 f = new MyFrame22("test"); } }class MyFrame22 extends Frame { MyFrame22(S
2015-01-31 15:58:08 583
原创 两种关闭窗口的方法
import java.awt.*;import java.awt.event.*;public class TestWindowClose { public static void main(String[] args) { MyFrame44 f = new MyFrame44("test"); } }class MyFrame44 extends Frame { MyF
2015-01-31 15:44:01 1220
原创 paint方法
import java.awt.*;public class TestPaint { public static void main(String[] args) { new PaintFrame().launchFrame(); } }class PaintFrame extends Frame { public void launchFrame() { setBoun
2015-01-31 14:03:52 722
原创 内部类
内部类可以直接访问包装类的成员变量,好处有两个:1):可以方便的访问包装类的成员2):可以更清楚的组织逻辑,防止不应该被其他类访问的累进行访问。那么何时使用呢?该类不允许或不需要其它类进行访问时。import java.awt.*;import java.awt.event.*;public class TFMath { public static void main(
2015-01-31 13:08:01 481
原创 简易计算器
import java.awt.*;import java.awt.event.*;public class TFMath { public static void main(String[] args) { new TFFrame().launchFrame(); } }class TFFrame extends Frame { TextField num1,num2,nu
2015-01-31 12:57:13 569
原创 TextField类
TextField 对象是允许编辑单行文本的文本组件。每次用户在文本字段中键入一个键时,就有一个或更多键事件被发送到该文本字段。创建文本对话框;import java.awt.*;import java.awt.event.*;public class TFActionEvent { public static void main(String[] args) {// new TF
2015-01-31 10:42:50 1166
原创 事件监视器
/* 范例名称:Java事件处理举例 * 源文件名称:TestActionEvent.java * 要 点: * 1. Java事件处理机制 * 2. 事件源、事件监听器概念及作用 * 3. 如何在一个现有组件上注册监听器 */import java.awt.*;import java.awt.event.*;public class TestActionEven
2015-01-31 10:00:46 1259
原创 BorderLayout和GridLayout
/* 范例名称:GridLayout应用举例 * 源文件名称:TestGridLayout * 要 点:GridLayout布局管理器的性质及用法 */import java.awt.*;public class TestGridLayout { public static void main(String args[]) { Frame f = new Fram
2015-01-30 15:24:18 867
原创 布局管理器FlowLayout
流水线布局管理器,一排排的摆,如果定义Panel的时候没有指定布局管理器的话,默认为FlowLayout布局管理器的好处就是让Panel随着Frame的大小变化而不断变化import java.awt.*;public class TestFlowLayout { public static void main(String[] args) { Frame f = new
2015-01-30 14:48:41 534
原创 Frame和Panel
import java.awt.*;public class TestPanel { public static void main(String[] args) { Frame f = new Frame("my first panel"); Panel p = new Panel(null); f.setLayout(null); f.setBounds(100,
2015-01-30 14:30:50 518
原创 关于图形编程
import java.awt.*;import java.awt.Color.*;public class TestFrame { public static void main(String[] args) { Frame f = new Frame("my first test"); //建立一个图形类 f.setLocation(300,300); f.setSize(
2015-01-30 12:16:25 439
原创 UDP编程
TCP编程和UDP编程其实是差不多的,主要的区别是UDP必须把要传递的信息变成数组进行传递:import java.net.*;import java.io.*;public class TestUDPServer { public static void main(String[] args)throws Exception { byte buf[] = new byte[102
2015-01-30 11:54:21 393
原创 相互通信的网络编程
上一篇的两个程序只能客户端向服务器端发送信息,这次我们就说一下两边相互发送信息的程序格式:首先是服务器端:import java.io.*;import java.net.*;public class TestSockServer {public static void main(String[] args) {InputStream is = null;//首
2015-01-30 11:52:13 386
原创 网络编程
其实,关于网络编程有着特有的格式,两个程序,一个服务器端,一个客户端,运行时先运行服务器端,在运行客户端,首先看下面两个小例子:import java.net.*;import java.io.*;public class TCPServer { public static void main(String[] args) throws Exception { ServerSocke
2015-01-30 11:44:08 591
原创 线程同步
public class TestSync implements Runnable { Timer timer = new Timer(); public static void main(String[] args) { TestSync test = new TestSync(); Thread t1 = new Thread(test); Thread t2
2015-01-27 14:34:41 352
原创 priority -- join -- yield
public class TestYild { public static void main(String[] args) { MyThread3 t1 = new MyThread3("t1"); MyThread3 t2 = new MyThread3("t2"); t1.start(); t2.start(); }}class MyThread3 ext
2015-01-27 13:48:02 349
原创 interrupt
import java.util.*;public class TestInterrupt { public static void main(String[] args) { MyThread mr = new MyThread(); mr.start(); try{Thread.sleep(10000);} //sleep是静态函数,因此可以使用类名调用,即10秒后主函数中
2015-01-27 12:43:16 383
原创 启用一个新的线程
public class TestThread1 { public static void main(String[] args) { Runner1 r = new Runner1(); // r.run(); //这个地方不属于启用新线程,属于方法调用 Thread t = new Thread(r); t.start(); //启用一个新的线程的时候,必须
2015-01-27 10:46:55 1640
原创 DateStream
import java.io.*;public class TestDataStream { public static void main(String[] args) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream
2015-01-25 17:40:30 580
原创 PrintStream
看下面几个程序import java.io.*;public class TestPrintStream1 { public static void main(String[] args) { PrintStream ps = null; try { FileOutputStream fos = new FileOutputStre
2015-01-25 17:38:53 403
原创 BufferIO
FileInputStream有一个致命的缺陷,那就是每读取一个字节就访问硬盘一次,这样对硬盘伤害很大,因此提出了缓冲区的输入输出流,将硬盘里的数据缓冲到缓冲区内,这样就避免在读写玩缓冲区内的数据之前访问硬盘,卡宾下面一个小例子:import java.io.*;public class TestBufferStream1 { public static void main(String[]
2015-01-24 12:13:15 415
原创 文件输入流小程序
import java.io.*;public class TestFileInputString { public static void main(String[] args) { FileInputStream in = null; int b=0; try{ in = new FileInputStream("d:/TestFileInputStream.java");
2015-01-23 16:37:44 990
原创 String[] args的应用
import java.util.*;public class TestArgsWords { //private static final Integer ONE = new Integer(1); private static final int ONE = 1; public static void main(String args[]) { Map m = new H
2015-01-23 15:28:29 458
原创 文件地址
import java.io.*;public class FileList { public static void main(String[] args) { File f = new File("d:/A"); System.out.println(f.getName()); tree(f, 1); } private static void tree(File f
2015-01-23 14:32:17 414
原创 泛型的第二个例子
import java.util.*;public class BasicGeneric { public static void main(String[] args) { List c = new ArrayList(); //以前放进去的是objects,只要是它的子类都可以放,现在不行了,只能放String c.add("aaa"); c.add("bbb"); c
2015-01-23 13:46:20 347
原创 泛型的小例子
在JDK文档中,有的类后面跟着一对两个小例子:import java.util.*;public class TestMap { public static void main(String args[]) { Map m1 = new HashMap(); Map m2 = new TreeMap(); //m1.put("one",new Integer(1
2015-01-23 13:40:38 429
原创 尚学堂
import java.util.*;public class TestMap { public static void main(String args[]) { Map m1 = new HashMap(); Map m2 = new TreeMap(); //m1.put("one",new Integer(1)); //为什么一定要放进去Integer对象呢
2015-01-23 11:25:06 444
原创 尚学堂
import java.util.*;public class BasicContainer { public static void main(String[] args) { Collection c = new HashSet(); c.add("hello"); c.add(new Integer(100)); c.add(new Name("f1","11"));
2015-01-22 15:10:48 575
原创 尚学堂
1:为什么是Collection c = new ArrayList();父类引用指向子类对象,这样,c就不能用ArrayList所特有的方法,方便更换C类型;1:为什么要用基础类型包装类,接口中智能放入对象;3:输出时,用的是tostring方法,查API文档
2015-01-22 11:37:38 352
原创 尚学堂
public class TestEnum { public enum MyColor { red, green, blue };//枚举类型 public enum MyDoorOpener {me, mywife}; public static void main(String[] args) { MyColor m = MyColor.red; //使用时必须直接取,red类
2015-01-22 10:37:46 336
转载 句柄
句柄,是整个Windows编程的基础。一个句柄是指使用的一个唯一的整数值,即一个4字节(64位程序中为8字节)长的数值,来标识应用程序中的不同对象和同类对象中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。应用程序能够通过句柄访问相应的对象的信息,但是句柄不是一个指针,程序不能利用句柄来直接阅读文件中的信息。如果句柄不用在I/O文件中,它是毫无用处的。 句柄是Windo
2014-08-29 09:30:20 761
转载 获取磁盘信息的一个程序
GetLogicalDriveStrings()DWORD GetLogicalDriveStrings(DWORD cchBuffer,LPTSTR lpszBuffer)VB声明Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal n
2014-08-28 20:06:47 447
转载 类模板详解
模板类以下面的代码开头: template 可以使用关键字typename代替class: template //newer choice 可以使用自己的通用类型名代替Type,其命名规则与其他标识符相同。 模板还可以包含多个类型参数template 通用类型标识符——例如这里的Type——称为类型参数(type p
2014-07-18 18:16:34 620
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人