善用绘制图形
在前面的章节里,我们普遍采用了现成的控件来满足需求,这些控件操作简便,但往往无法完全契合我们的具体需求。在这种情况下,我们便需深入探究一种无需依赖控件,即可绘制图形的方法。
无论是普通控件,还是AWT控件,它们都具备一个(g)方法,通常情况下我们并不会去关注它。然而,一旦我们需自行绘制图形,便不得不深入了解这个方法。
为了确保大家能够理解和采纳自己绘制的图形方式,我们不妨从(g)方法入手进行讲解:(g)方法将控件比喻为一张待绘制的空白画布。在需要绘制图形时,我们可以借助它所提供的一系列基础绘制手段。为了帮助大家更好地掌握这一概念,我们特此创建了一个新类,用于展示用户时间的显示功能,具体代码如下:
..*;
java.awt.*;
{
设置字体样式为粗体,字号为48点。
this.(new (156, 48));
this.(new (156, 48));
void ( g) {
g.(new (111, 146, 212));
g.(0, 0, this.(), this.());
g.(.);
g.();
g.("307", 16, 40);
该内容需存放在我们新创建的.java文件里,其中的代码相对简单,大家可自行查阅文档,寻找关于函数使用的具体说明。之后,我们将原程序中负责显示时间的代码部分进行如下修改:
= new ();
.add();
效果如何,输出的结果是否一致?尽管目前文字边缘的锯齿现象尚未完全消除,但我们对自行绘制的图形已经有了初步的认识。
随心所欲的
我们追求极致的视觉体验,对文字出现的锯齿状显示现象深感不满。面对这一普遍存在的控件字体显示问题,即便是专业人士也束手无策。因此,我们似乎不得不寻找全新的解决方案。
幸运的是,Sun也认识到了这一点,故在Java编程语言中设置了相应的类来应对此类问题。接下来,我们仍将通过编写代码来阐述这一议题。
void ( g) {
g2 = () g;
d = ();
g2.(new (111, 146, 212));
g2.(0, 0, d., d.);
g2.(.,
.);
g2.(.);
g2.();
g2.("123", 16, 40);
在上述代码中,我们成功将对象转换为对象后,仅通过一句简单的操作便实现了抗锯齿的效果。接下来,让我们审视程序的实际运行效果,你是否对此感到满意?(见图3。)