?? jdclock.java
字號:
BorderDark.getGreen() * 2, BorderDark.getBlue() * 2);
BGColor = getParameter("BGColor", Color.black);
FontColor = getParameter("FontColor", new Color(65280));
DayColor = getParameter("DayColor", new Color(0x808080));
TodayColor = getParameter("TodayColor", new Color(65280));
SundayColor = getParameter("SundayColor",
new Color(0xff0000));
tracker = new MediaTracker(this);
int i = 0;
do
{
image[i] = createImage(15, 20);
Graphics g = image[i].getGraphics();
g.setColor(BGColor);
g.fillRect(0, 0, 15, 20);
drawNumber(g, i);
tracker.addImage(image[i], 0);
}
while(++i <= 11);
if(ShowWeek)
{
int j = 0;
do
{
wimage[j] = createImage(120, 10);
Graphics g1 = wimage[j].getGraphics();
g1.setColor(BGColor);
g1.fillRect(0, 0, 120, 10);
drawWeek(g1, j);
tracker.addImage(wimage[j], 0);
}
while(++j < 7);
}
TimeDiff = 0L;
s = getParameter("TimeZone");
if(s != null && !s.equalsIgnoreCase("LOCAL"))
{
Date date = new Date();
if(s.charAt(0) == '+')
s = s.substring(1);
try
{
TimeDiff = (long)Integer.parseInt(s) * 0x36ee80L +
(long)date.getTimezoneOffset() * 60000L;
}
catch(Exception _ex) { }
}
try
{
buf_image = createImage(base_width, base_height);
gc = buf_image.getGraphics();
drawFrame(gc);
return;
}
catch(Exception _ex)
{
gc = null;
}
}
//響應鼠標動作
public boolean handleEvent(Event event)
{
switch(event.id)
{
case Event.MOUSE_UP :
default:
break;
case Event.MOUSE_DOWN :
if(suspended) timer.resume();
else timer.suspend();
suspended = !suspended;
break;
case Event.MOUSE_MOVE :
if(tracker.statusID(0, true) != 8)
showStatus("initialing...please wait!");
break;
}
return true;
}
//畫數字
void drawNumber(Graphics g, int i)
{
int j = 0;
int k = 0;
g.setColor(FontColor);
while((k = NumberSegment[i][j++]) != -1)
g.fillPolygon(SegmentPolygon[k]);
}
//設置星期幾
void drawWeek(Graphics g, int i)
{
int j = 0;
do
{
g.setColor(j != i ? DayColor : j != 0 ?
TodayColor : SundayColor);
int k = 0;
do
{
g.drawLine(WeekPointX[j][k * 2] + WeekOffset[j],
WeekPointY[j][k * 2], WeekPointX[j][k * 2 + 1] +
WeekOffset[j], WeekPointY[j][k * 2 + 1]);
k++;
}
while(WeekPointX[j][k * 2] != -1);
}
while(++j < 7);
}
//設置主窗口
void drawFrame(Graphics g)
{
g.setColor(BGColor);
g.fillRect(0, 0, base_width, base_height);
if(ShowFrame)
{
g.setColor(BorderLight);
g.drawRect(0, 0, base_width - 1, base_height - 1);
g.drawRect(1, 1, base_width - 3, base_height - 3);
g.drawRect(3, 3, base_width - 7, base_height - 7);
g.drawRect(4, 4, base_width - 9, base_height - 9);
g.setColor(BorderMideum);
g.drawRect(2, 2, base_width - 5, base_height - 5);
g.setColor(BorderDark);
g.drawLine(base_width - 1, 1, base_width - 1,
base_height - 1);
g.drawLine(base_width - 1, base_height - 1, 0,
base_height - 1);
g.drawLine(base_width - 2, 2, base_width - 2,
base_height - 2);
g.drawLine(base_width - 2, base_height - 2, 1,
base_height - 2);
g.drawLine(3, 3, base_width - 4, 3);
g.drawLine(3, 3, 3, base_height - 5);
g.drawLine(4, 4, base_width - 5, 4);
g.drawLine(4, 4, 4, base_height - 6);
}
int i = offset;
if(ShowWeek)
i += 10;
g.drawImage(image[10], bdigit_width * 2 + offset, i, this);
g.drawImage(image[10], bdigit_width * 5 + offset, i, this);
if(ShowDate)
{
i += 20;
g.setColor(BorderLight);
g.drawLine(offset + 3, i + 2, base_width - offset - 4,
i + 2);
i += 5;
g.drawImage(image[11], bdigit_width * 2 + offset,
i, this);
g.drawImage(image[11], bdigit_width * 5 + offset,
i, this);
}
}
//畫屏函數
public void paintApplet(Graphics g)
{
int i = offset;
Date date = new Date();
if(TimeDiff != 0L)
date.setTime(date.getTime() + TimeDiff);
int j = date.getYear();
int k = date.getMonth() + 1;
int l = date.getDate();
int i1 = date.getHours();
int j1 = date.getMinutes();
int k1 = date.getSeconds();
if(!Show24Hour)
i1 = i1 <= 12 ? i1 : i1 - 12;
if(buf_image == null)
drawFrame(g);
if(ShowWeek)
{
g.drawImage(wimage[date.getDay()], offset, i, this);
i += 10;
}
g.drawImage(image[i1 / 10], offset, i, this);
g.drawImage(image[i1 % 10], bdigit_width + offset, i, this);
g.drawImage(image[j1 / 10],
bdigit_width * 3 + offset, i, this);
g.drawImage(image[j1 % 10],
bdigit_width * 4 + offset, i, this);
g.drawImage(image[k1 / 10],
bdigit_width * 6 + offset, i, this);
g.drawImage(image[k1 % 10],
bdigit_width * 7 + offset, i, this);
if(ShowDate)
{
i += 25;
g.drawImage(image[k / 10], offset, i, this);
g.drawImage(image[k % 10], bdigit_width + offset,
i, this);
g.drawImage(image[l / 10], bdigit_width * 3 + offset,
i, this);
g.drawImage(image[l % 10], bdigit_width * 4 + offset,
i, this);
g.drawImage(image[j / 10], bdigit_width * 6 + offset,
i, this);
g.drawImage(image[j % 10], bdigit_width * 7 + offset,
i, this);
}
}
//刷新屏幕函數
public void update(Graphics g)
{
if(tracker.statusID(0, true) == 8)
{
if(buf_image != null)
{
paintApplet(gc);
g.drawImage(buf_image, 0, 0, this);
return;
}
g.clearRect(0, 0, base_width, base_height);
paintApplet(g);
}
}
//啟動小程序
public void start()
{
if(timer == null)
{
timer = new Thread(this, "JDClock");
timer.start();
}
}
//停止小程序
public void stop()
{
timer = null;
}
//運行小程序
public void run()
{
while(timer != null)
{
try
{
Thread.sleep(1000L);
repaint();
continue;
}
catch(InterruptedException _ex) { }
break;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -