`
aocshallo
  • 浏览: 9454 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
社区版块
存档分类
最新评论

awt 学习笔记3

阅读更多

awt学习笔记3

第三章 图 形
3.1-3.4
这一部分主要是说在使用Graphics这个内置对象应该注意的问题

1、fillRect()与drawRect()不同
drawRect(int x,int y, int x_add, int y_add)
第三个,第四个变量是增量
原文:

  import java.applet.Applet;
  import java.awt.*;
  public class RectTest extends Applet{
   public void paint(Graphics g){
    g.drawRect(2,2,4,4);
   }
  }

 

画笔的变化  坐标(2,2)→(6,2)→(6,6)→(2,6)→(2,2)
而实际在操作的时候,是从点右下侧的像素画的,所以实际上绘制出来的矩形的宽度和高度是5个像素单位——而不是你所想象的4个像素单位
要想画成自己想要的长宽在调用的时候drawRect(int x,int y, int x_add-1, int y_add-1)就可以了

fillRect()是填充四个座标内的区域,所以不会有这样的问题

  import java.applet.Applet;
  import java.awt.*;
  public class RectTest extends Applet{
   public void paint(Graphics g){
    g.fillRect(2,2,4,4);
   }
  }

 
填充(2,2)→(6,2)→(6,6)→(2,6)→(2,2)四个座标内的区域,所以是一个4个像素单位的矩形
2、Graphics引用是复制过来的
3、处理Graphics引用
原则:
如果只是覆盖传递Graphics引用的方法,像Component.paint()或Component.update(),那么然后你就可以什么也不管——处理引用则是调用者的责任。
如果是getGraphics方法中的一个得到一个对Graphics的引用,或者通过Graphics.create()创建一个Graphics,那么就有责任对它们进行处理

3.5绘制和填充形状

随机画直线,颜色随机,位置随机

import java.applet.Applet;
import java.awt.Button;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class DrawRandomLine extends Applet {
 
 @Override
 public void paint(Graphics g) {

  Dimension size = this.getSize();
  int MAX_COLOR = 255;
  int MAX_X = new Double(size.getWidth()).intValue();
  int MAX_Y = new Double(size.getHeight()).intValue();
  
  //随机产生三基色数值
  int cr = new Double(Math.random()* MAX_COLOR).intValue();
  int cg = new Double(Math.random()* MAX_COLOR).intValue();
  int cb = new Double(Math.random()* MAX_COLOR).intValue();
  
  //随机产生两个坐标点
  int x1 = new Double(Math.random() * MAX_X).intValue();
  int y1 = new Double(Math.random() * MAX_Y).intValue();
  int x2 = new Double(Math.random() * MAX_X).intValue();
  int y2 = new Double(Math.random() * MAX_Y).intValue();

  //输出颜色及坐标信息
  g.drawString("Color:r=" + cr + ",g=" + cg + ",b=" + cb, 0, 10);
  g.drawString("Point A:x=" + x1 + ",y=" + y1, 0, 30);
  g.drawString("Point B:x=" + x2 + ",y=" + y2, 0, 50);

  Color c = new Color(cr, cg, cb);
  g.setColor(c);
  g.drawLine(x1, y1, x2, y2);
  
 }

 @Override
 public void init() {
  
  this.setSize(640, 480);
  
  //设置按钮
  Button b = new Button("repaint");
  this.add(b);
  b.addActionListener(
   new ActionListener(){
    @Override
    public void actionPerformed(ActionEvent e) {
    //注意:匿名内部类引用外部同名资源OuterClass.this.XXXX
    //其实直接写repaint()就可以了,不过这样写可以知道谁调用的这个方法
     DrawRandomLine.this.repaint();
    }
   } 
  );
 }
}

 

 

 

分享到:
评论

相关推荐

    JAVA图形编程(AWT+SWING)

    通过`java图形编程1-AWT.chm`和`java图形编程2-Swing.chm`这两个文档,你可以深入学习AWT和Swing的使用方法,了解组件的创建、布局管理、事件处理、模型-视图-控制器模式,以及如何利用Swing的高级功能来构建复杂的...

    java学习笔记(一个初学者的java学习笔记)

    ### Java学习笔记——基础知识详解 #### 一、Java基本数据类型及内存占用 Java作为一种广泛使用的编程语言,其基础数据类型对于理解程序的行为至关重要。Java提供了八种基本数据类型,分为数值型、字符型和布尔型...

    j2se学习笔记和java学习笔记

    本学习笔记旨在深入理解J2SE的基础概念、核心特性以及实际应用。 一、Java基础 Java是一种面向对象的编程语言,由Sun Microsystems(现已被Oracle收购)于1995年发布。它的主要特点包括跨平台性(Write Once, Run ...

    java学习笔记JDK6.0课件和代码

    这个压缩包中包含的"java学习笔记JDK6课件和课本代码"是学习JDK 6.0的重要参考资料,可以帮助你深入理解Java编程的核心概念和实践技巧。 1. **Java基础**:Java是一种面向对象的编程语言,它的基础包括类、对象、...

    java学习笔记JDK6课件和课本代码.rar

    本压缩包"java学习笔记JDK6课件和课本代码.rar"中包含的资源,旨在帮助学习者深入理解Java编程,并掌握JDK 6的关键特性。以下是一些主要的知识点: 1. **基础语法**:Java的基础语法包括变量声明、数据类型、运算符...

    《Java JDK 6 学习笔记》配书示例

    《Java JDK 6 学习笔记》这本书很可能是为了帮助读者深入理解和掌握这个版本的Java编程语言及其开发环境。以下是一些关键知识点的详细说明: 1. **自动装箱与拆箱**:Java 6中引入了自动装箱和拆箱功能,使得基本...

    AWT和Swing笔记,java图形化界面编程

    学习并熟练掌握AWT和Swing,可以让Java程序员创建出具有吸引力和高效交互的图形用户界面,从而提高软件的用户体验。在实际开发中,可以根据需求选择使用AWT的原生感观或Swing的跨平台一致性,以达到最佳的设计效果。

    java学习笔记 初学者必读

    3. 二•定义,关键字和类型 3-5 3.1. 注释的三种形式 3-5 3.2. Java代码中的“;”、“{}”、“ ” 3-5 3.3. 标识符 3-5 3.4. 数据类型 3-6 3.5. 命名规则 3-6 4. 三•表达式和控制流 4-6 4.1. 变量和作用域 4-6 4.2...

    java学习笔记及源代码

    这份"java学习笔记及源代码"的资源,显然旨在帮助初学者或有经验的开发者深入理解和实践Java编程。以下是对这个主题的详细阐述: 一、Java语言基础 1. 类与对象:Java的核心是面向对象编程,类是对象的模板,对象是...

    corejava2awt

    全是自己编写的,没问题,是个学习java awt的好笔记。是个非抢号的一个学习资料

    java学习笔记.pdf

    ### Java学习笔记知识点总结 #### 第一章:Java语言入门 - **1.1 Java的诞生** Java由Sun Microsystems公司于1995年推出的一种可移植、面向对象的编程语言。最初的设计目标是为消费电子产品提供一种通用编程语言...

    Java OpenGL(JOGL)学习笔记,含代码

    Java OpenGL(JOGL)学习笔记 在学习 JOGL 时,我们需要了解图形显示器是如何工作的。图形显示器是一个由许多像素点组成的绘图区域,图形系统的核心是一个魔法画笔,这支画笔能以非常快的速度移动到一个确定的像素...

    JAVA学习笔记3

    ### JAVA学习笔记3 #### 知识点概览 1. **Java开发工具Eclipse的快捷键使用** 2. **Java中的注释** 3. **Java Applet程序基础** - 第一个Applet程序示例 - Applet类的基本方法 4. **Java Applet的生命周期** ##...

    java学习笔记 达内笔记(经典)

    (二)面向对象技术总结.pdf (三)corejava高级特性总结 (四)接口学习总结 (五)异常和内部类 (六)集合框架学习总结 (七)GUI和AWT事件模型 (八)多线程学习总结 (九)输入输出流学习总结 (十)网络编程学习总结

    java学习笔记,全程

    【Java学习笔记全程详解】 Java作为一种广泛应用于企业级开发、移动应用、大数据处理等领域的编程语言,其学习过程涵盖了许多核心概念和技术。这份"我的Java学习笔记"详细记录了作者在学习Java过程中积累的心得体会...

    JAVA入门实例代码及学习笔记

    【JAVA入门实例代码及学习笔记】是一份针对初学者精心准备的资料,涵盖了JAVA语言的基础到进阶的各种重要概念和实战技巧。这份资料通过实际的代码示例和详细的学习笔记,帮助初学者深入理解JAVA编程。 1. **面向...

    javase6 学习笔记(李兴华培训课堂笔记所有.)

    JavaSE6学习笔记是针对Java初学者和进阶者的一份宝贵资料,由知名讲师李兴华的培训课堂笔记汇编而成。这份笔记全面、详细地涵盖了Java SE 6版本的核心概念和技术,对于理解Java编程语言的基础以及进阶特性具有重要...

    java代码笔记2010-06-24:java 实现一个分页操作(JDBC+GUI->AWT) 实例

    这篇2010年6月24日的博客文章“Java代码笔记”提供了一个使用JDBC(Java Database Connectivity)与GUI(图形用户界面)AWT(Abstract Window Toolkit)实现分页操作的实例。接下来,我们将详细探讨这个知识点。 ...

Global site tag (gtag.js) - Google Analytics