第9章 GUI(下)
常用AWT组件
在上一章开始的第一个程序中,我们就用到了按钮(Button),这是最简单的组件之一了,在AWT里还有很多用于GUI设计的组件,我们现在就来了解更多的GUI组件。。
Java的图形用户界面的最基本组成部分是组件,组件是一个可以以图形化的方式显示在屏幕上并能与用户进行交互的对象,例如一个按钮,一个标签等。ponent是所有Java ponent类规定了所有GUI组件的基本特性,该类中定义的方法实现了作为一个GUI组件所应具备的基本功能。ponent的子类。
Canvas
Canvas代表屏幕上的一块空白的矩形区域,程序能够在这个部件表面绘图,也能够捕获用户的操作,产生相应的事件,Canvas可以说是具有最基本的和最简单的GUI功能的部件。当我们要设计一种自己定制的具有GUI功能的部件类,我们的这个类就可以继承Canvas,这样,我们的部件类就已经完成了GUI的基本功能,我们只需要在这个基础上增加子类部件所专有的外观和功能的相关代码就行了,我们要想绘制子类部件的外观,我们必须覆盖Canvas的paint方法。
我们现在设计一个计时器部件,鼠标在部件上按下时,计时器开始计时,并在部件上显示计时时间,鼠标释放时,计时器停止计时。下面是这个计时器的程序代码,其中涉及到的技巧和知识点,都在前面有过讲解,这里就不作详细解释了。
程序清单:
import .*;
import .*;
import .*;
import ;
class StopWatch extends Canvas implements Runnable
{
private long startTime = 0;
private long endTime = 0;
private boolean bStart = false;
public StopWatch()
{
enableEvents();
setSize(80,30);
}
protected void processMouseEvent(MouseEvent e)
{
if(() == )
{
bStart = true;
startTime = endTime = ();
repaint();
new Thread(this).start();
}
else if(() == )
{
bStart = false;
repaint();
}
(e);
}
public void paint(Graphics g)
{
SimpleDateFormat sdf= new SimpleDateFormat("HH:mm:ss");
Date elapsedTime =null;
try
{
elapsedTime= ("00:00:00");
}catch(Exception e){}
(endTime - startTime +
());
String display = (elapsedTime);
(0,0,78,28);
(2,2,75,25,true);
();
(display,10,20);
}
public void run()
{
while(bStart)
{
try
{
(500);
}catch(Exception e){();}
endTime = ();
repaint();
}
}
}
public class TestStopWatch
{
public stat
Java就业培训教程第九章 来自淘豆网www.taodocs.com转载请标明出处.