知识大全 Java绘图机制

Posted 函数

篇首语:恢弘志士之气,不宜妄自菲薄。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java绘图机制相关的知识,希望对你有一定的参考价值。

Java绘图机制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  JAVA的绘图功能非常丰富 绘图包括字体 颜色 图形 以下我们将分技术专题来讲

  一 关于JAVA的绘图机制

  JAVA中的任何一个图形组件 小到文本框 标签 大到一个FRAME 一个DIALOG 都有一个专门负责显示其界面的函数 这个函数名称是固定的 paint 它的原型为 public void paint(Graphics g) …… 每当组件大小 位置 组件内容发生变化时 该函数即负责生成新的图形界面显示 由于该函数可以被子类继承 因此 继承的子类有能力修改该函数 如果子类中没有出现该函数 则表示其行为完全继承自父类 则不管是组件中是否添加了新的内容 是否发生了大小的改变 是否发生了位移 父类都要有一个专门的线程 来负责描绘变化以后的组件界面 paint函数由父类自动维护 并且如果子类一旦重载该函数 必须自己去维护所有的界面显示

  二 设置画笔颜色

   颜色常识

  任何颜色都是三原色组成(RGB) JAVA中支持 位彩色 即红绿蓝色分量可取值介于 之间 下面首先学习一个JAVA中的类Color Color中的常量

  public final static Color black=new Color( );

  public final static Color blue=new Color( );

  …

  Color的构造函数

  public Color(int r int g int b);

  使用举例 如果想构造一个灰色对象 则用下面的句子

  Color gray=new Color( );

   设置画笔颜色语法

  g setColor(color); //color是一个Color对象

  每修改一次颜色它影响的就是下面所有的绘图语句 一直影响到再次碰到setColor函数才以新的颜色代替

   使用JColorChooser组件选择颜色 JAVA中有一个已经定义好的选色器 通过简单的语法我们就可以将该窗口调出来 从其中选择自己喜欢的颜色 下面的这个例子就是通过颜色选取器选取颜色 并将选择到的颜色做为窗体的背景色

  ( )JColorChooser简介 JColorChooser组件的showDialog()方法让用户从弹出的窗口中选择一个颜色 并传给Color对象 其调用语法如下 color=JColorChooser showDialog(this 选色 color); 第一个参数指定调用选色器的父窗体 第二个参数指定选色器窗口标题 最后一个为接收颜色的颜色对象

   如何将一个图形(以文件存在 如JPG或者GIF)画到窗体的画布中 其实放置图形到画板中实际就是调用了画板的drawImage函数 其大致思路如下 首先获取一个ImageIcon对象 这个对象将会从指定的文件中读取相关图象信息 它支持GIF和JPG BMP等基本图象格式 语法如下

  ImageIcon icon=new ImageIcon(GraExp class getResource( gif ));

  获取到图象的图标以后 就可以从图标中获取到绘制到画板上的实际需要的图象

  Image img=icon getImage();

  有了这个图象对象 我们就可以用画板的drawImage函数画图了

  g drawImage(img null);

  中间两个参数是图象绘制时在画板的起始点坐标 例如

  import java awt *;

  import java awt event *;

  import javax swing *;

  public class GraExp extends JFrame

  ImageIcon icon;

  Image img;

  public GraExp ()

  icon=new ImageIcon(GraExp class getResource( gif ));

  img=icon getImage();

  setDefaultCloseOperation(WindowConstants DISPOSE_ON_CLOSE);

  setSize(new Dimension( ));

  show();

  

  public void paint(Graphics g)

  g drawImage(img null);

  

  public static void main(String[] args)

  

  GraExp ge=new GraExp ();

  

  

  程序分析 需要注意的是 图象文件所在的位置应该和该类放在同一个目录中 这样不至于出错

   系统扩展 综合应用 如何为一个窗体设置背景图片

  要为一个窗体添加背景图片 必须知道绘制JComponent组件的过程 Swing轻量组件的绘制是组件和组件UI代表合作的结果 JComponent paint先绘制组件 然后绘制组件的边框 再绘制组件的子组件 调用的顺序确保组件 边框和子组件都是可视的 如果组件有一个UI代表 则JComponent paintComponent调用该代表的Update方法 该方法为不透明组件擦除背景 然后绘制组件 CInstead是一个不透明的组件 如果重载paint方法 其背景图是无法被擦除的 因此 即使更新了组件的所有包含组件 在界面上是看不到的 所以必须重载paintComponent方法 在绘制子组件前先擦除背景 对双缓存组件 paint方法负责把组件绘制到屏外缓存中 然后把屏外缓存拷贝到组件的屏上代表中 正因为如此 我们不建议为Swing组件重载paint 如果需要重新定义如何绘制组件 那么就重载paintComponent()

   用可获取的字体 样式 字号修饰文字

  ( )函数说明

  字形类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();

cha138/Article/program/Java/hx/201311/27064

相关参考

知识大全 java反射机制

  JAVA反射机制是在运行状态中对于任意一个类都能够得到这个类的所有属性和方法;对于任意一个对象都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制 

知识大全 Java核心 Java中多态的实现机制

Java核心Java中多态的实现机制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  多态性是面向

知识大全 Java反射机制深入研究

Java反射机制深入研究  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java反射是Java语

知识大全 Java垃圾回收机制

Java垃圾回收机制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  java垃圾回收主要是靠一个

知识大全 JAVA 的Socket机制

JAVA的Socket机制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Socket机制用到的

知识大全 Java多线程处理机制

Java多线程处理机制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一线程的同步  Java应

知识大全 Java移位运算机制

Java移位运算机制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  举例代码  publiccl

知识大全 Java的文件IO机制

Java的文件IO机制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java有一个庞大的I/O

知识大全 实现JAVA的动态类载入机制

实现JAVA的动态类载入机制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  作为充分利用Java

知识大全 Java堆栈溢出的机制与原理

Java堆栈溢出的机制与原理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java堆栈溢出的出