大功告成: package execices;import java.awt.*; import java.awt.event.*; import java.util.*; import java.text.SimpleDateFormat; public class TestStopWatch_v10 { public static void main(String [] args) { MenuBar menubar = new MenuBar(); Menu menu = new Menu("选择"); MenuItem stop = new MenuItem("计时器"); MenuItem time = new MenuItem("时间"); menu.add(stop); menu.add(time); menubar.add(menu);
final Frame f = new Frame("StopWatch"); f.setMenuBar(menubar); f.setSize(200,200); final StopWatch_v10 stop_1 = new StopWatch_v10(); final StopWatch_v20 time_1 = new StopWatch_v20(); stop.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { f.remove(time_1); f.add(stop_1); f.validate(); } }); time.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { f.remove(stop_1); f.add(time_1); f.validate(); } }); f.setVisible(true); f.validate(); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { f.setVisible(false); f.dispose(); System.exit(0); } }); } } class StopWatch_v10 extends Canvas implements Runnable { private long startTime = 0; private long endTime = 0; private boolean bstart = false; private boolean pORr = true; StopWatch_v10() { enableEvents(AWTEvent.MOUSE_EVENT_MASK); setSize(80,30); } public void paint(Graphics g) { SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); Date d = null ; try { d = sdf.parse("00:00:00"); } catch(Exception e) { System.out.println(e.getStackTrace()); } d.setTime((int)(d.getTime()+(endTime - startTime))); String display = sdf.format(d); g.setColor(Color.black); g.drawRect(10,10,70,28); g.fill3DRect(12,12,66,24,false); g.setColor(Color.WHITE); g.drawString(display,20,30); } protected void processMouseEvent(MouseEvent e) { if(e.getID()==MouseEvent.MOUSE_PRESSED) { if (pORr == true) { bstart = true; startTime = endTime = System.currentTimeMillis(); repaint(); new Thread(this).start(); pORr = false; } else { bstart = false; endTime = System.currentTimeMillis(); repaint(); pORr = true; } }
} public void run() { while(bstart) { try { Thread.sleep(100); } catch(Exception e) { System.out.println(e.getStackTrace()); } endTime = System.currentTimeMillis(); repaint(); } } } class StopWatch_v20 extends Canvas implements Runnable { StopWatch_v20() { setSize(80,30); new Thread(this).start(); } public void paint(Graphics g) { SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
long time = System.currentTimeMillis(); Date d2 = new Date(time); String display2 = sdf.format(d2); g.setColor(Color.black); g.drawRect(10,50,70,28); g.fill3DRect(12,52,66,24,false);
C:\jdk1.5.0\demo\applets\Clock
gui啊?好象用不用都无所谓,只要是能够独立运行的applet就行,功能是像电子表那样,带个计时器的表,时间功能好象调用系统的就可以,计时器和表可以分开,不用在一个框里显示。
我这个马上就要交了,最近根本没时间学java上网找还找不到,求各位好心的dx帮忙了!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Calculatorbysq extends JFrame
{
private JTextField resultText;
private JPanel textPanel;
private JPanel controlPanel;
private JPanel keyPanel;
private boolean isNew = true; //是否为新数标志
private String operation = ""; //运算符
private String pnum; //前一个数
public Calculatorbysq()
{
super("计算器");
setDefaultCloseOperation(EXIT_ON_CLOSE);
TextInit(); //初始化文本框
ControlInit(); //初始化控制键
KeyInit(); //初始化键盘
Container panel = getContentPane();
panel.setLayout(new BorderLayout());
panel.add(textPanel,"North");
panel.add(controlPanel,"Center");
panel.add(keyPanel,"South");
setResizable(false);
//setSize(300,230);
pack();
setVisible(true);
}
private void TextInit()
{
textPanel = new JPanel();
resultText = new JTextField("0",25);
resultText.setHorizontalAlignment(JTextField.RIGHT);//靠右显示
resultText.setEditable(false); //不可编辑
resultText.setBackground(Color.WHITE);
textPanel.add(resultText);
}
private void ControlInit()
{
controlPanel = new JPanel();
controlPanel.setLayout(new GridLayout(1,3,0,2));
JButton Backapace = new JButton("Backspace");
Backapace.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(isNew) //保证只在输入过程中可用
{
return;
}
else
{
String s = resultText.getText();
int l = s.length();
if(l!=1) //多个数字
{
resultText.setText(s.substring(0,l-1));
}
else //一个数字
{
resultText.setText("0");
isNew = true;
}
}
}
});
controlPanel.add(Backapace);
JButton CE = new JButton("CE");
CE.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
resultText.setText("0");
isNew = true;
}
});
controlPanel.add(CE);
JButton C = new JButton("C");
C.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
resultText.setText("0");
isNew = true;
}
});
controlPanel.add(C);
}
private void KeyInit()
{
keyPanel = new JPanel();
keyPanel.setLayout(new GridLayout(4,5,3,4));
String [] key = {"7","8","9","/","sqrt","4","5","6","*","%","1","2","3","-","1/x","0","+/-",".","+","="};
for(int i=0;i<20;i++)
{
String label = key[i];
Button btn = new Button(label);
keyPanel.add(btn);
btn.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
key_actionPerformsd(e);
}
});
}
}
private void key_actionPerformsd(ActionEvent e)
{
String s = e.getActionCommand(); //取s为按键
String text = resultText.getText(); //取text为当前显示
if(s.equals("0"))
{
if(isNew)
{
if(operation.equals("")) //如果在新数且没有操作符情况下按下0
{
return;
}
else //新数有运算符,如:5+0时
{
resultText.setText(s);
}
}
else
resultText.setText(text+s); //不是新数
}
if(s.equals("+/-"))
{
if(text.equals("0")) //text为0时
{
return;
}
else //text不为0
{
double k = Double.parseDouble(text);
display(-k);
}
}
if(s.equals("1")||s.equals("2")||s.equals("3")||s.equals("4")||s.equals("5")||s.equals("6")||s.equals("7")||s.equals("8")||s.equals("9"))
{
if(isNew)
{
resultText.setText(s);
isNew = false;
}
else
{
resultText.setText(text+s);
}
}
if(s.equals("."))
{
if((text.indexOf(".")==-1)) //显示框中没有"."
{
if(isNew) //新数
{
resultText.setText("0.");
isNew = false;
}
else //非新数
{
resultText.setText(text+".");
}
}
else //显示框中有"."
{
return;
}
}
if(s.equals("="))
{
if(operation.equals("")) //没有运算符
{
isNew = true;
return;
}
else
{
compute(s);
operation = "";
isNew = true;
}
}
if(s.equals("+")||s.equals("-")||s.equals("*")||s.equals("/"))
{
if(operation=="") //不当作=用,如:1+
{
operation = s;
pnum = resultText.getText();
isNew = true;
}
else //当作=用,如:1+2+
{
compute(s);
isNew = true;
}
}
if(s.equals("sqrt"))
{
double sqrttext = Double.parseDouble(text);
if(sqrttext<0)
{
resultText.setText("函数输入无效!");
isNew = true;
}
else
{
display(Math.sqrt(sqrttext));
isNew = true;
}
}
if(s.equals("%"))
{
double bfztext = Double.parseDouble(text);
display(bfztext/100);
isNew = true;
}
if(s.equals("1/x"))
{
double reciprocaltext = Double.parseDouble(text);
if(reciprocaltext==0)
{
resultText.setText("除数不能为0!");
isNew = true;
}
else
{
display(1/reciprocaltext);
isNew = true;
}
}
}
private void compute(String s)
{
double data1 = Double.parseDouble(pnum); //data1为第一个数
double data2 = Double.parseDouble(resultText.getText());//data2为当前数
if(operation.equals("+"))
{
display(data1+data2);
}
if(operation.equals("-"))
{
display(data1-data2);
}
if(operation.equals("*"))
{
display(data1*data2);
}
if(operation.equals("/"))
{
if(data2==0)
{
resultText.setText("除数不能为0!");
}
else
{
display(data1/data2);
}
}
pnum = resultText.getText(); //把当前结果存为前一数
}
private void display(double result)
{
int a = (int)result;
if (a==result) //整数
resultText.setText(String.valueOf(a));
else //非整数
resultText.setText(String.valueOf(result));
}
}
public class Calculator //启动运行类
{
public static void main(String[]args)
{
new Calculatorbysq();
}
}
import java.awt.*;
//import java.awt.event.AWTEventListener;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.*;
import java.text.SimpleDateFormat;
public class TestStopWatch_v10
{
public static void main(String [] srgs)
{
final Frame f = new Frame("StopWatch");
f.setSize(200,200);
f.add(new StopWatch_v10());
f.setVisible(true);
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
f.setVisible(false);
f.dispose();
System.exit(0);
}
});
}
}
class StopWatch_v10 extends Canvas implements Runnable
{
private long startTime = 0;
private long endTime = 0;
private boolean bstart = false;
private boolean pORr = true;
StopWatch_v10()
{
enableEvents(AWTEvent.MOUSE_EVENT_MASK);
setSize(80,30);
}
public void paint(Graphics g)
{
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
Date d = null ;
try
{
d = sdf.parse("00:00:00");
}
catch(Exception e)
{
System.out.println(e.getStackTrace());
}
d.setTime((int)(d.getTime()+(endTime - startTime)));
String display = sdf.format(d);
g.setColor(Color.black);
g.drawRect(10,10,70,28);
g.fill3DRect(12,12,66,24,false);
g.setColor(Color.WHITE);
g.drawString(display,20,30);
}
protected void processMouseEvent(MouseEvent e)
{
if(e.getID()==MouseEvent.MOUSE_PRESSED)
{
if (pORr == true)
{
bstart = true;
startTime = endTime = System.currentTimeMillis();
repaint();
new Thread(this).start();
pORr = false;
}
else
{
bstart = false;
endTime = System.currentTimeMillis();
repaint();
pORr = true;
}
}
/*else if(e.getID()==MouseEvent.MOUSE_RELEASED)
{
}*/
} public void run()
{
while(bstart)
{
try
{
Thread.sleep(100);
}
catch(Exception e)
{
System.out.println(e.getStackTrace());
}
endTime = System.currentTimeMillis();
repaint();
}
}
}
大家工作不忙么
package execices;import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.text.SimpleDateFormat;
public class TestStopWatch_v10
{
public static void main(String [] args)
{
MenuBar menubar = new MenuBar();
Menu menu = new Menu("选择");
MenuItem stop = new MenuItem("计时器");
MenuItem time = new MenuItem("时间");
menu.add(stop);
menu.add(time);
menubar.add(menu);
final Frame f = new Frame("StopWatch");
f.setMenuBar(menubar);
f.setSize(200,200);
final StopWatch_v10 stop_1 = new StopWatch_v10();
final StopWatch_v20 time_1 = new StopWatch_v20();
stop.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) {
f.remove(time_1);
f.add(stop_1);
f.validate();
}
});
time.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
f.remove(stop_1);
f.add(time_1);
f.validate();
}
});
f.setVisible(true);
f.validate();
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
f.setVisible(false);
f.dispose();
System.exit(0);
}
});
}
}
class StopWatch_v10 extends Canvas implements Runnable
{
private long startTime = 0;
private long endTime = 0;
private boolean bstart = false;
private boolean pORr = true;
StopWatch_v10()
{
enableEvents(AWTEvent.MOUSE_EVENT_MASK);
setSize(80,30);
}
public void paint(Graphics g)
{
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
Date d = null ;
try
{
d = sdf.parse("00:00:00");
}
catch(Exception e)
{
System.out.println(e.getStackTrace());
}
d.setTime((int)(d.getTime()+(endTime - startTime)));
String display = sdf.format(d);
g.setColor(Color.black);
g.drawRect(10,10,70,28);
g.fill3DRect(12,12,66,24,false);
g.setColor(Color.WHITE);
g.drawString(display,20,30);
}
protected void processMouseEvent(MouseEvent e)
{
if(e.getID()==MouseEvent.MOUSE_PRESSED)
{
if (pORr == true)
{
bstart = true;
startTime = endTime = System.currentTimeMillis();
repaint();
new Thread(this).start();
pORr = false;
}
else
{
bstart = false;
endTime = System.currentTimeMillis();
repaint();
pORr = true;
}
}
}
public void run()
{
while(bstart)
{
try
{
Thread.sleep(100);
}
catch(Exception e)
{
System.out.println(e.getStackTrace());
}
endTime = System.currentTimeMillis();
repaint();
}
}
}
class StopWatch_v20 extends Canvas implements Runnable
{
StopWatch_v20()
{
setSize(80,30);
new Thread(this).start();
}
public void paint(Graphics g)
{
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
long time = System.currentTimeMillis();
Date d2 = new Date(time);
String display2 = sdf.format(d2);
g.setColor(Color.black);
g.drawRect(10,50,70,28);
g.fill3DRect(12,52,66,24,false);
g.setColor(Color.WHITE);
g.drawString(display2,20,70);
}
public void run()
{
while(true)
{
try
{
Thread.sleep(100);
}
catch(Exception e)
{
System.out.println(e.getStackTrace());
}
repaint();
}
}
}20分值了,呵呵