键盘上的舞者

像写情书一样Coding...

用户操作
[即时聊天] [发私信] [加为好友]
陈维ID:chenweionline
67428次访问,排名1527(-1)好友11人,关注者0
专注 Java Desktop 技术,多年 Java GUI 开发经验。
chenweionline的文章
原创 55 篇
翻译 0 篇
转载 19 篇
评论 142 篇
键盘上的舞者的公告

专注 JAVA Desktop 技术

简单做到极致

最近评论
hupy2007:讲的很好,但是上面提到的新建action的时候,可以选择有条件的可用,上文中写到下面会讲,但是下面也没有提到。我想问一下,project 、edit、open、save等都是些具体什么时候才会可用啊,谢谢了
zhangping:你好,我想我大约是遇上了和你同样的问题。

我的问题是:

我这里有一些java源文件,其中有些注释是日文写的。
在日文操作系统中,运行没有问题,但是在中文操作系统中

用NetBeans6.1重新建立工程,进行Build的时候,会报错和警告:



* <p>&……
兴趣:THS,能否介绍一些资料。
兴趣:如果采用JAVA, 它这方面的功能足够了吗?
兴趣:如果采用JAVA, 它这方面的功能足够了吗?
文章分类
收藏
    相册
    ChinaJoy 2008
    女魔头
    上海浦东软件园
    养在深闺人未识
    Favorite
    Apple-NaNa
    CnGadGet
    NOTCOT.ORG
    虚拟无忌
    技术
    Geertjan's Weblog
    java.net forums
    Let's Swing Java
    Mac Java Community
    NetBeans Rich Client Application (RCP)
    NetBeans星球
    open open
    朋友
    Christina
    企鹅博士
    地平线上
    阿憨月经
    非上上智
    资源
    balloontip
    bluemarine
    JAI
    JAI-ImageIO
    JMONKEYENGINE
    jna
    jrawio
    metadata extraction in java
    pdf-renderer
    QuickTime for Java
    swinglabs
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 你应该知道的 - 关于 Java 2D 中图形上下文基类 Graphics收藏

    新一篇: Tangram FAQ | 旧一篇: 2008欧洲杯赛程

    版权声明:转载时请务必保留以下作者信息和链接
    作者:陈维(chenweionline@hotmail.com)作者的网站:http://www.chenwei.mobi

      AWT 提供了一些用户接口的构件,但是它不提供一些类似的纯粹的绘制图形的对象,例如 Rectangle、Polygon 和 Point 类没有任何绘制图形的能力。换句话说它们不具备 draw 方法,仅仅可以设置和的到它们代表的几何实体的信息。

      为了代替那些纯粹的、可绘制图形的对象,AWT 使用了一种简单的模式。每个 AWT 构件完全来自于它自己的 java.awt.Graphics 对象。

      java.awt.Graphics 是一个抽象类,其作用是定义一个真正的工具,用来接受图形操作。

    表一:传递一个对 Graphics 的引用的 JDK 方法

    java.awt Canvas paint(Graphics g)
      Component paint(Graphics g)
      Component paintAll(Graphics g)
      Component print(Graphics g)
      Component printAll(Graphics g)
      Component update(Graphics g)
      Container paint(Graphics g)
      Container paintComponents(Graphics g)
      Container print(Graphics g)
      Container printComponents(Graphics g)
      ScrollPane printComponents(Graphics g)
    java.beans Property-Editor paintValue(Graphics g, Rectangle r)
      Property-EditorSupport paintValue(Graphics g, Rectangle r)

    表二:返回 Graphics 引用的 JDK 方法

    java.awt Component getGraphics()
      Image getGraphics()
      PrintJob getGraphics()
      Graphics create()
      Graphics create(intx, int y, int w, int h)

    Graphics 类履行2个主要的职责:

        · 设置和获取图形参数。

        · 在输出设备中执行图形操作。

    得到构件的 Graphics 的引用有2种方法:

        · 重载 表一 中的方法(传递 Graphics 的引用)

        · 调用 表二 中的方法(返回 Graphics 的副本)

    Graphics 对象的寿命

      除了使用 表二 的方法得到的 Graphics 的副本外,使用 表一 的方法得到的 Graphics 的引用只有在方法的执行过程中才有效(例如重载的 paint() 和 update() 等方法)。一旦方法返回,引用将不再有效。

      通过使用 表二 的方法得到的 Graphics 的对象使用完后需要调用 Graphics.dispose() 方法处理。

    // 程序片断
    public void someMethodInAComponent(){
     Graphics g 
    = getGraphics();
     
     
    if(g != null){
      
    try{
       
    // ...
       
    // ...
      }

      
    finally{
       g.dispose();
      }

     }

    }

     

    Graphics 类还提供2个方法创建 Graphics 对象:

      Graphics create() 

      创建精确的 Graphics 副本。

      Graphics create(int x, int y, int w, int h)

      创建一个副本,但是,变元指定一个平移量 (x, y) 和一个新的剪贴矩形 (x, y, w, h)。create(int, int, int, int) 返回的 Graphics 的原点被转换成 (x, y) 的坐标,但是剪贴矩形转换为原剪贴矩形和指定矩形的交集。

    import java.applet.Applet;
    import java.awt.*;
    import java.awt.event.*;

    public class CreateTest extends Applet{
     
    private Image image;
     
     
    public void init(){
      image 
    = getImage(getCodeBase(),"lena.jpg");
      
    try{
       MediaTracker mt 
    = new MediaTracker(this);
       mt.addImage(image,
    0);
       mt.waitForID(
    0);
      }

      
    catch(InterruptedException e){
       e.printStackTrace();
      }

     }

     
     
    public void paint(Graphics g){
      Graphics copy 
    = g.create(image.getWidth(this),0,image.getWidth(this),image.getHeight(this));
      
      
    try{
       System.out.println(
    "g: " + g.getClip().toString());
       System.out.println(
    "copy: " + copy.getClip().toString());
       
       g.drawImage(image,
    0,0,this);
       copy.drawImage(image,
    0,0,this);
      }

      
    finally{
       copy.dispose();
      }

     }

    }

    发表于 @ 2008年05月03日 11:39:00|评论(loading...)|收藏

    新一篇: Tangram FAQ | 旧一篇: 2008欧洲杯赛程

    评论

    #Happy漫步者 发表于2008-05-06 19:35:20  IP: 222.243.204.*
    不错 收藏了 关注你
    #Kylixs 发表于2008-07-03 23:44:33  IP: 116.7.105.*
    简单了点...
    Graphics2D都没说到

    还有那些画不规则图形的...
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 键盘上的舞者