Java的绘图入门

java的绘图功能非常丰富,绘图包括字体、颜色、图形,以下我们将分技术专题来讲。
  一、关于java的绘图机制。
  java中的任何一个图形组件,小到文本框、标签,大到一个frame,一个dialog,都有一个专门负责显示其界面的函数,这个函数名称是固定的:paint,它的原型为: public void paint(graphics g) { …… } 每当组件大小、位置、组件内容发生变化时,该函数即负责生成新的图形界面显示。由于该函数可以被子类继承,因此,继承的子类有能力修改该函数。如果子类中没有出现该函数,则表示其行为完全继承自父类。则不管是组件中是否添加了新的内容,是否发生了大小的改变,是否发生了位移,父类都要有一个专门的线程,来负责描绘变化以后的组件界面。 paint函数由父类自动维护,并且如果子类一旦重载该函数,必须自己去维护所有的界面显示。
  二、设置画笔颜色
  1、颜色常识
  任何颜色都是三原色组成(rgb),java中支持224位彩色,即红绿蓝色分量可取值介于0..255之间。下面首先学习一个java中的类color color中的常量:
  public final static color black=new color(0,0,0);
  public final static color blue=new color(0,0,255);
  …..
  color的构造函数:
  public color(int r,int g,int b);
  使用举例:如果想构造一个灰色对象,则用下面的句子:
  color gray=new color(205,205,205);
  2、设置画笔颜色语法
  g.setcolor(color); //color是一个color对象
  每修改一次颜色它影响的就是下面所有的绘图语句,一直影响到再次碰到setcolor函数才以新的颜色代替。
  3、使用jcolorchooser组件选择颜色 java中有一个已经定义好的选色器,通过简单的语法我们就可以将该窗口调出来,从其中选择自己喜欢的颜色。下面的这个例子就是通过颜色选取器选取颜色,并将选择到的颜色做为窗体的背景色。
  (1)jcolorchooser简介 jcolorchooser组件的showdialog()方法让用户从弹出的窗口中选择一个颜色,并传给color对象。其调用语法如下: color=jcolorchooser.showdialog(this,”选色”,color); 第一个参数指定调用选色器的父窗体,第二个参数指定选色器窗口标题,最后一个为接收颜色的颜色对象。
  4、如何将一个图形(以文件存在,如jpg或者gif)画到窗体的画布中其实放置图形到画板中实际就是调用了画板的drawimage函数。其大致思路如下:首先获取一个imageicon对象,这个对象将会从指定的文件中读取相关图象信息,它支持gif和jpg、bmp等基本图象格式。语法如下:
  imageicon icon=new imageicon(graexp5.class.getresource("1.gif"));
  获取到图象的图标以后,就可以从图标中获取到绘制到画板上的实际需要的图象:
  image img=icon.getimage();
  有了这个图象对象,我们就可以用画板的drawimage函数画图了。
  g.drawimage(img,0,0,null);
  中间两个参数是图象绘制时在画板的起始点坐标。 例如:
  import java.awt.*;
  import java.awt.event.*;
  import javax.swing.*;
  public class graexp5 extends jframe {
  imageicon icon;
  image img;
  public graexp5() {
  icon=new imageicon(graexp5.class.getresource("1.gif"));
  img=icon.getimage();
  setdefaultcloseoperation(windowconstants.dispose_on_close);
  setsize(new dimension(400,300));
  show();
  }
  public void paint(graphics g) {
  g.drawimage(img,0,0,null);
  }
  public static void main(string[] args)
  {
  graexp5 ge=new graexp5();
  }
  }
  程序分析: 需要注意的是,图象文件所在的位置应该和该类放在同一个目录中,这样不至于出错。
  6、系统扩展,综合应用,如何为一个窗体设置背景图片。
  要为一个窗体添加背景图片,必须知道绘制jcomponent组件的过程。swing轻量组件的绘制是组件和组件ui代表合作的结果。 jcomponent.paint先绘制组件,然后绘制组件的边框,再绘制组件的子组件。调用的顺序确保组件、边框和子组件都是可视的。如果组件有一个 ui代表,则jcomponent.paintcomponent调用该代表的update方法,该方法为不透明组件擦除背景,然后绘制组件。 cinstead是一个不透明的组件,如果重载paint方法,其背景图是无法被擦除的,因此,即使更新了组件的所有包含组件,在界面上是看不到的。所以必须重载paintcomponent方法,在绘制子组件前先擦除背景。对双缓存组件,paint方法负责把组件绘制到屏外缓存中,然后把屏外缓存拷贝到组件的屏上代表中,正因为如此,我们不建议为swing组件重载paint,如果需要重新定义如何绘制组件,那么就重载paintcomponent ()。
  7、用可获取的字体、样式、字号修饰文字
  (1)函数说明:
  字形类font用于规范组件所使用的字形大小、样式和字体等。其构造函数:
  public font(string name,int style,int size);
  name表示本地可获取字体名称 style表示字体样式,包含font.plain,font.bold,font.italic三种,分别对应平体、加粗和斜体。 一个有用的方法用来获取本地可用字体

  graphicsenvironment
  ge=graphicsenvironment.getlocalgraphicsenvironment();
  string[]
  fa=ge.getavailablefontfamilynames();
  通过从绘图环境中获取到本地可用的字体名数组。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值