import java.awt.*;
成都创新互联公司是一家业务范围包括IDC托管业务,网站空间、主机租用、主机托管,四川、重庆、广东电信服务器租用,四川移动机房托管,成都网通服务器托管,成都服务器租用,业务范围遍及中国大陆、港澳台以及欧美等多个国家及地区的互联网数据服务公司。
import java.applet.Applet;
import java.util.Calendar;
import java.text.SimpleDateFormat;
import java.util.Date;
public class ClockApplet extends Applet implements Runnable //Applet支持线程
{
private Thread athread; //线程
private SimpleDateFormat sdateformat; //日期格式
public void init()
{
this.setBackground(Color.white);//背景颜色设为白色
this.athread = null;
}
public void paint(Graphics g)
{
this.sdateformat = new SimpleDateFormat("hh时mm分ss秒");
g.drawString(this.sdateformat.format(new Date()),25,131);
Calendar rightnow = Calendar.getInstance();
int second = rightnow.get(Calendar.SECOND);
int minute = rightnow.get(Calendar.MINUTE);
int hour = rightnow.get(Calendar.HOUR);
//半径
int R_H = 20,R_M = 4,R_S = 4;
//时针的坐标
//x ====(9-3)[0-6] (3-9)[6-0]
//y ====(12-6)[0-6] (6-12)[6-0]
int H_x ;
int H_y;
//x
if(hour == 0)
{
hour = 12;
}
if( hour = 3 hour = 9 )
{
H_x = R_H*Math.abs(hour - 9);
}
else
{
if(hour 9)
{
H_x = R_H*Math.abs(hour - 9);
}
else
{
H_x = R_H*Math.abs(hour+3);
}
}
//y
if( hour = 6 hour = 12 )
{
H_y = R_H*Math.abs(hour - 12);
}
else
{
H_y = R_H*hour;
}
//分针的坐标
int M_x;
int M_y;
if(minute == 0)
{
minute = 60;
}
if( minute = 15 minute = 45 )
{
M_x = R_M*Math.abs(minute - 45);
}
else
{
if(minute 45)
{
M_x = R_M*Math.abs(minute - 45);
}
else
{
M_x = R_M*Math.abs(minute+15);
}
}
//y
if( minute = 30 minute 60 )
{
M_y = R_M*Math.abs(minute - 60);
}
else
{
M_y = R_M*minute;
}
//秒针的坐标
int S_x;
int S_y;
if(second == 0)
{
second = 60;
}
if( second = 15 second = 45 )
{
S_x = R_S*Math.abs(second - 45);
}
else
{
if(second 45)
{
S_x = R_S*Math.abs(second - 45);
}
else
{
S_x = R_S*Math.abs(second+15);
}
}
//y
if( second = 30 second = 60 )
{
S_y = R_S*Math.abs(second - 60);
}
else
{
S_y = R_S*second;
}
// g.drawString(String.valueOf(second),25,50);
// g.drawString(String.valueOf(minute),25,60);
// g.drawString(String.valueOf(hour),25,70);
// g.drawString(String.valueOf(H_x),25,80);
// g.drawString(String.valueOf(H_y),25,90);
g.drawOval(0,0,120,120);//距离相差10像素
g.setColor(Color.darkGray);
g.drawString("9",5,65);
g.drawString("3",110,65);
g.drawString("12",55,15);
g.drawString("6",55,115);
g.drawString("1",80,20);
g.drawString("2",100,40);
g.drawString("4",100,90);
g.drawString("5",80,110);
g.drawString("7",30,110);
g.drawString("8",10,90);
g.drawString("10",10,40);
g.drawString("11",30,20);
g.setColor(Color.red);
g.drawLine(60,60,H_x,H_y);//前一个点表示起点,另一个表示终点
g.setColor(Color.blue);
g.drawLine(60,60,M_x,M_y);
g.setColor(Color.yellow);
g.drawLine(60,60,S_x,S_y);
}
public void start()
{
if(athread == null)
{
athread = new Thread(this);
athread.start();
}
}
public void stop()
{
if(athread != null)
{
athread.interrupt();
athread = null;
}
}
public void run()
{
while(athread != null)
{
repaint();
try
{
athread.sleep(1000);
}
catch(InterruptedException e)
{
}
}
}
}
jpg是静态的,你说的是gif格式,有很多软件可以做GIF动画的。
初学者可以使用GIF Movie Gear做。
GIF Movie Gear是一款异常小巧的GIF制作软件。仅仅2M不到的一个小软件却具备了GIF制作软件所需要的所有常见功能。另外它还可以在各种图像以及AVI文件之间随意转换。下面我们一起来领略一下GIF Movie Gear的强大功能。
动画实际上是连续的静态画面,因此在制作动画之前,我们要首先准备好动画播放过程中的一系列单帧图像。可以先利用其它平面绘图软件制作好单帧图像之后再利用GIF Movie Gear来将其制作成GIF动画。
打开GIF Movie Gear之后我们看到的主界面上有“打开”以及“插入帧”的按钮,
“打开”按钮的作用等同于“文件”菜单下“导入”选项的功能。在“导入”选项之中可以看到GIF Movie Gear支持的文件格式还是相当之多的。
我们可以将这些所支持格式的图片文件合并或者制作成动态的GIF图片。
一次选择多张已经制作好的单帧图像。
导入单帧图像后的界面。此时也可以通过“帧”菜单对单帧的画面进行调整和编辑。
点击工具栏的三角形播放按钮即可预览动画。
经过预览会发现此时的动画速度过快,可以从“动画”菜单打开“属性设置”。在“全局帧”选项卡里面将播放速度设置为50每帧持续1/100秒,也就是说每帧的显示时间为50毫秒,即半秒的时间。
另外在“属性设置”的“动画”选项卡里,还可以对播放次数等做出设置,当播放次数设置为0的时候,意即循环播放。
对动画设置好之后并且预览满意之后即可保存为GIF动画。实际上GIF Movie Gear对于GIF以及图片格式的转换非常之简单,在保存的时候选择相应的格式即可。
OK!大功告成了:
GIF Movie Gear亦可以直接导入AVI视频格式的文件将其转换为GIF格式,从“文件”菜单“导入”AVI文件,经过一段处理过程之后,我们可以在软件界面里看到AVI视频文件被分解成一个个单帧图像,并可以作为GIF格式预览。一般来说,为了避免生成的GIF图片文件体积过于庞大,我们只会截取极少的一部分来制作成GIF图片,选取一个片断的连续单帧,将其它的多余帧删除。
一般AVI影片的原始分辨率都比较大,在“动画”菜单选择“调整大小”,即可以对最终生成的GIF分辨率作精确调整。调整之后预览满意之后即可将文件另存为GIF格式的图片。
为了GIF图片便于浏览,我们要避免太复杂的帧数过多的图像造成图片体积过大,另外在保存之前可以利用“动画”菜单的“精简颜色”和“优化动画”两个功能来缩减GIF图片的体积。
===================
一般的人可以使用UGA
个人认为Ulead GIF Animator v5.05 不错!!!
友立公司出版的动画GIF制作软件,内建的Plugin有许多现成的特效可以立即套用,可将AVI文件转成动画GIF文件,而且还能将动画GIF图片最佳化,能将你放在网页上的动画GIF图档减肥,以便让人能够更快速的浏览网页。
=======================
高手可以使用photoshop中的Adobe ImageReady 。
骨灰都用Fireworks MX 2004 做。
Macromedia Flash MX2004 7.01简体中文版(矢量动画)
Flash是交互式矢量图和Web动画的标准。网页设计者使用Flash能创建漂亮的、可改变尺寸的、以及极其紧密的导航界面、技术说明以及其他奇特的效果。完全汉化版,实用于测试正式版!本次更新的内容:汉化95%的函数,更改部分不确切的地方,希望你使用的时候有什么问题,能及时反映给我好吗?Flash MX 2004中的编程特性有很大突破,令人有耳目一新的感觉,Developer甚至可以掉去Tool Bar绘图工具和Timeline
软件大小:77279KB
软件语言:简体中文
运行环境:Win9x/Me/NT/2000/XP
下载页面:
你是用J2EE做还是用J2SE做,如果是J2EE的话,JS应该就可以实现这个功能,如果用J2SE的话,那就可能需要你用到画图的类,或者APPLET小程序了,因为对小程序不精通,所以就说一下画图类吧,如果想要做一个动态的时钟的话,那时间控件肯定是不能少的,利用时间控件来控制图片的移动,也就是指针的移动。指针移动其实是在画圆,所以指针的一个坐标已经 确定了,而另一个坐标你就需要自己来想一个算法了,每过一分钟,图片的坐标会走几个像素,用时间控件来改变图片的坐标。这只是我的想法,具体实现起来肯定会有难度,加油。
这个问题包含数据结构,流程图方面的知识点,需要分析过以后再解答?
你又问了一个啊!
public MyThread() extends Thread{
private Graphics g; // 我们可以用类的变量啊
public void run (){
g.XXX // 这样使用就行了。
}
// 至于g,可以用构造器初始化,也可以用setGraphics() 这样的方法
}
这是代码,你可以自己调试一下。
数据结构如下:
CREATE TABLE dtree (
id int,
pid int,
name varchar(200),
url varchar(200),
title varchar(200),
target varchar(200),
icon varchar(200),
iconopen varchar(200),
opened bit);
为了实现获取数据库变量功能,需要建立一个DTree类,并编译生成CLASS文件,放入\WEB-INF\classes文件夹下。
DTree类代码如下:
package work3;
public class DTree {
private int id;
private int pid;
private String name;
private String url;
private String title;
private String target;
private String icon;
private String iconOpen;
private int opened;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getTarget() {
return target;
}
public void setTarget(String target) {
this.target = target;
}
public String getIcon() {
return icon;
}
public void setIcon(String icon) {
this.icon = icon;
}
public String getIconOpen() {
return iconOpen;
}
public void setIconOpen(String iconOpen) {
this.iconOpen = iconOpen;
}
public int getOpened() {
return opened;
}
public void setOpened(int opened) {
this.opened = opened;
}
}
work3.jsp代码如下:
%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%
%@ page import="java.sql.*"%
jsp:useBean id='settree' scope="application" class="work3.DTree" /
!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
""
html
head
meta http-equiv="Content-Type" content="text/html; charset=GB18030"
link rel="StyleSheet" href="dtree.css" type="text/css" /
script type="text/javascript" src="dtree.js"/script
titledTree in MySQL/title
/head
body
h2
Example
/h2
div class="dtree"
p
a href="javascript: d.openAll();"open all/a |
a href="javascript: d.closeAll();"close all/a
/p
script type="text/javascript"
!--
d = new dTree('d');
%
//驱动程序名
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
//数据库用户名
String userName = "sa";
//密码
String userPwd = "1";
//数据库名
String dbName = "master";
//表名
String tableName = "dtree";
//连接字符串
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName="+dbName;
//加载驱动
Class.forName(driverName).newInstance();
//连接数据库
java.sql.Connection conn = DriverManager.getConnection(url,userName,userPwd);
//得到Statement实例
java.sql.Statement statement = conn.createStatement();
//查询数据
String sql = "select * from " + tableName;
//返回结果
java.sql.ResultSet rs = statement.executeQuery(sql);
//获取变量
while (rs.next()) {
settree.setId(rs.getInt(1));
settree.setPid(rs.getInt(2));
settree.setName(rs.getString(3));
settree.setUrl(rs.getString(4));
settree.setTitle(rs.getString(5));
settree.setTarget(rs.getString(6));
settree.setIcon(rs.getString(7));
settree.setIconOpen(rs.getString(8));
settree.setOpened(rs.getInt(9));
if(settree.getPid()==0)
settree.setOpened(1);
%
d.add(%=settree.getId()%,%=settree.getPid()%,'%=settree.getName()%','%=settree.getUrl()%','%=settree.getTitle()%','%=settree.getTarget()%','','',%=settree.getOpened()%);
%
}
%
document.write(d);
//--
/script
/div
/body
/html