首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java 图形界面有关问题!实在找不到哪里错···

2012-09-25 
java 图形界面问题!实在找不到哪里错[codeJava][/code]文件1:package com.stopwatchimport java.awt.*i

java 图形界面问题!实在找不到哪里错···
[code=Java][/code]
文件1:
package com.stopwatch;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;

 
public class StopWatch extends Canvas implements Runnable {
 private long startTime=0;
 private long endTime=0;
 private boolean bStart =false; 
 
 public StopWatch(){
  enableEvents(AWTEvent.MOUSE_EVENT_MASK);
  setSize(60,70);
 }
 protected void processMouseEvent(MouseEvent e){
  if (e.getID() == MouseEvent.MOUSE_PRESSED) {
  bStart = true;
  new Thread(this).start();
  startTime = endTime =System.currentTimeMillis();
  repaint();
  }else if (e.getID() == MouseEvent.MOUSE_RELEASED) {
  endTime = System.currentTimeMillis();
  repaint();
  bStart = false;
  }
 }
 
 public void paint(Graphics g){
  SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
  Date elapseTime =null;
  
  try {
  elapseTime =sdf.parse("00:00:00");
  } catch (ParseException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  }
  elapseTime.setTime(endTime-startTime+elapseTime.getTime());
  g.draw3DRect(50, 50, 30, 10, true);
  String display = sdf.format(elapseTime);
  g.drawString(display, 25, 8);
  
 }
 
 public void run(){
  while (bStart) {
  try {
  Thread.sleep(300);
  } catch (Exception e) {
  // TODO: handle exception
  e.printStackTrace();
  }
  endTime = System.currentTimeMillis();
  repaint();
  }
 }

 
}
文件2:
package com.stopwatch;
import java.awt.Frame;
public class TestStopWatch extends Frame{
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  StopWatch sw = new StopWatch();
  Frame f = new Frame();
  f.add(new StopWatch());
  f.setSize(100, 100);
  f.setVisible(true);
 }

 
}
我找不到哪里有错····帮忙找一下!

[解决办法]
StopWatch 没看明白

Java code
import java.awt.Frame;import java.awt.event.WindowEvent;import java.awt.event.WindowAdapter;public class TestStopWatch {  /**   * @param args   */    public static void main(String[] args) {        // TODO Auto-generated method stub        final StopWatch sw = new StopWatch();        final Frame f = new Frame();        f.add(sw);        f.addWindowListener(new WindowAdapter(){            @Override public void windowClosing(WindowEvent e){                f.dispose();            }        });        f.setSize(100, 100);        f.setVisible(true);    }}
[解决办法]


你的这两段代码放在一起就可以实现了:
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.awt.Frame;
 
public class StopWatch extends Canvas implements Runnable {
 private long startTime=0;
 private long endTime=0;
 private boolean bStart =false; 
 
 public StopWatch(){
enableEvents(AWTEvent.MOUSE_EVENT_MASK);
setSize(60,70);
 }
 protected void processMouseEvent(MouseEvent e){


if (e.getID() == MouseEvent.MOUSE_PRESSED) {
bStart = true;
new Thread(this).start();
startTime = endTime =System.currentTimeMillis();
repaint();
}else if (e.getID() == MouseEvent.MOUSE_RELEASED) {
endTime = System.currentTimeMillis();
repaint();
bStart = false;
}
 }
 
 public void paint(Graphics g){
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
Date elapseTime =null;
  
try {
elapseTime =sdf.parse("00:00:00");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
elapseTime.setTime(endTime-startTime+elapseTime.getTime());
g.draw3DRect(50, 50, 30, 10, true);
String display = sdf.format(elapseTime);
g.drawString(display, 25, 8);
  
 }
 
 public void run(){
while (bStart) {
try {
Thread.sleep(300);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
endTime = System.currentTimeMillis();
repaint();
}
 }



public static void main(String[] args) {
// TODO Auto-generated method stub
StopWatch sw = new StopWatch();
Frame f = new Frame();
f.add(new StopWatch());
f.setSize(200, 200);
f.setVisible(true);
 }
 
}


热点排行
Bad Request.