作为Applet程序的一个入门,我们今天探讨一下如何实现一个半径不断增大的小球动画,正如下图所示。
设计的关键思想:
我们需要设定一个小球的圆心坐标,最好是在窗口的中央,然后令小球的半径不断增大,不断的重绘,以实现小球的增大动画。
设计方案:
我们要绘制小球,就用到了一个Graphics类,Graphics类有绘制的功能。
然后再设计一个线程专门用来控制动画的播放,我们重载run()方法,在其中实现小球半径的增加,以及调用窗体的重绘函数,每隔一定时间重绘窗体。
接下来实现paint(Graphics g)函数,来绘制一个彩色圆球,这个函数中要做的就很简单了,用特定的颜色覆盖一个一定大小的圆形区域
下面就是源代码
import java.awt.*;
import java.applet.Applet;
import javax.swing.JApplet;
public class Circle extends JApplet implements Runnable{
int x;//圆心x坐标 为x-r/2
int y;//圆心y坐标 为y-r/2
int r;//半径
private Image img;
private Graphics graph;
public void init(){
Dimension de = ......
1. Java计算时间依靠1970年1月1日开始的毫秒数.
2. Date类的 ......
获取java资源的方法
在开发java程序的过程中,我们经常要做的一件事就是获取资源。那么什么是资源呢?说白了,在计算机里那就是一堆数据。只是这堆数据对我们的java程序有多种表现形式,一般来说有File,URL,InputStream等等。而单就文件这一项就有很多种:配置文件,java类文件,jps文件,图片、css、js文件等等。面对这林林总总的资源,我们在设计一个读取资源的接口时,就需要针对不同形式的资源提供方法,这样就导致我们的接口还是与实际的资源形式绑定在一起,未能完全的抽象。另外,在java程序中资源的存放位置也是各异的。有的存放在classpath中,有的存放在文件系统中,有的存放在web应用中。而对于不同位置的资源,java程序获取这些资源的方法各有不同。
A、获取classpath中的资源:
Java代码
URL url = this.getClass().getResource("resource_name");
URL url = this.getClass().getClassLoader().getResource("resource_name");
URL url = Thread.currentThread().getContextClassLoader().getResource("resourc ......
第一种方法使用 Desktop类,该类继承自Object
import java.awt.*;
import java.io.*;
class DesktopTest
{
public static void main(String args[])
{
if (!Desktop.isDesktopSupported())
{
System.err.println("Desktop not supported!");
System.exit(-1);
}
else
{
try{
Desktop desktop = Desktop.getDesktop();
File f=new File("E:\\date\\htmljc.htm");//这里可以是图片,doc,ppt等各种文件,系统会已默认的编辑器打开该文件
desktop.open(f);
//打开api还会有browse(URI uri)打开网页方法
//mail() 发送邮件的方法
}
catch(Exception e){System.out.println(e.getMessage());}
}
}
}
还有一种方法就是
import java.io.*;
class NewClass
{
public static void main(String args[])
{
Runtime rt=Runtime.getRuntime();
try{
rt.exec("notepad e:\\date\\test.txt");//打开文本文档
//rt.exec("C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE http://www.dixiasoft.cn");打开网页
}
catch (Exception e){ System.out.println(e.getMessage()); }
}
}
不过第一种方法好像需要jd ......
package com.ftp;
import com.enterprisedt.net.ftp.FTPClient;
import com.enterprisedt.net.ftp.FTPFile;
import com.enterprisedt.net.ftp.FTPMessageCollector;
import com.enterprisedt.net.ftp.FTPTransferType;
import com.enterprisedt.net.ftp.FTPConnectMode;
import com.enterprisedt.util.debug.Level;
import com.enterprisedt.util.debug.Logger;
import java.io.File;
import java.util.List;
/**
*
*/
public class FtpUtil {
/** 判断文件夹是否存在,这种方式不是很准 */
public static boolean isDirExist(String dirname, String[] files) {
for (int i = 0; i < files.length; i++) {
if (files[i].indexOf("<DIR>") > -1 && files[i].indexOf(dirname) > -1) {
return true;
}
}
return false;
}
public void upDownFile() {
String host = "10.163.7.15";
String user = "cxl";
String password = "1";
/** 定义FTPClient便利 */
FTPClient ftp = nu ......
在java.lang包中有String.split()方法,返回是一个数组
1、如果用"."作为分隔的话,必须是如下写法:String.split("\\."),这样才能正确的分隔开,不能用String.split(".");
2、如果用"|"作为分隔的话,必须是如下写法:String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");
"."和"|"都是转义字符,必须得加"\\";
3、如果在一个字符串中有多个分隔符,可以用"|"作为连字符,比如:"acount=? and uu =? or n=?",把三个都分隔出来,可以用String.split("and|or");
使用String.split()方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。
参数regex是一个 regular-expression(正则表达式)的匹配模式而不是一个简单的String,他对一些特殊的字符可能会出现你预想不到的结果,比如测试下面的代码:
用竖线 | 分隔字符串,你将得不到预期的结果
String[] aa = "aaa|bbb|ccc".split("|");
//String[] aa = "aaa|bbb|ccc".split("\\|"); 这样才能得到正确的结果
for (int i = 0 ; i <aa.length ; i++ ) {
&nb ......