java工程开发之图形化界面之(第四课)

本届中,我们将创建一个小应用程序,它使用循环生成其图案。我们将使用if语句和setColor方法。同时我们将介绍drawString方法,并使用它在小应用程序窗口中写出文本。

下面的小应用程序是显示一串七个面孔,我们下面来看看效果。

先贴上自己慢慢敲的一个小时的代码:

 1 package 一个事例图形小应用程序;
 2 import javax.swing.JApplet;
 3 import java.awt.*;
 4 import java.awt.Color;
 5 import java.awt.Graphics;
 6 //Graphics and Color
 7
 8 public class differentFace extends JApplet
 9 {
10     public static final int FACE_DIAMETER = 50;
11     public static final int X_FACEO = 10;
12     public static final int Y_FACEO = 5;
13
14     public static final int EYE_WIDTH = 5;
15     public static final int EYE_HIGHT = 10;
16     public static final int X_RIGHT_EYEO = 20;
17     public static final int Y_RIGHT_EYEO = 15;
18     public static final int X_LEFT_EYEO = 45;
19     public static final int Y_LEFT_EYEO = Y_RIGHT_EYEO;
20
21     public static final int NOSE_DIAMETER = 5;
22     public static final int X_NOSEO = 32;
23     public static final int Y_NOSEO = 25;
24
25     public static final int MOUTH_WIDTH = 30;
26     public static final int MOUTH_HEIGHTO = 0;
27     public static final int X_MOUTHO = 20;
28     public static final int Y_MOUTHO = 35;
29     public static final int MOUTH_START_ANGLE = 180;
30     public static final int MOUTH_EXTENT_ANGLE = 180;
31
32     public void paint(Graphics canvas){
33         int i,xOffset,yOffset;//希望循环结束后i的值还是要存在
34         for(i = 0; i <= 4; i++){
35             //画出一张脸
36             xOffset = 50 * i;
37             yOffset = 30 * i;
38
39             if(i%2==0){
40                 canvas.setColor(Color.LIGHT_GRAY);
41                 canvas.fillOval(X_FACEO + xOffset, Y_FACEO + 30 * i, FACE_DIAMETER,FACE_DIAMETER);
42             }
43             canvas.setColor(Color.BLACK);
44             canvas.drawOval(X_FACEO + xOffset, Y_FACEO + yOffset, FACE_DIAMETER, FACE_DIAMETER);
45             //画出眼睛
46             canvas.setColor(Color.BLACK);
47             canvas.fillOval(X_RIGHT_EYEO + xOffset, yOffset + Y_RIGHT_EYEO, EYE_WIDTH, EYE_HIGHT);
48             canvas.fillOval(X_LEFT_EYEO + xOffset, yOffset + Y_LEFT_EYEO, EYE_WIDTH, EYE_HIGHT);
49             //画鼻子
50             canvas.setColor(Color.black);
51             canvas.fillOval(X_NOSEO + xOffset, Y_NOSEO + yOffset, NOSE_DIAMETER, NOSE_DIAMETER );
52             //画嘴巴
53             canvas.setColor(Color.black);
54             canvas.drawArc(X_MOUTHO + xOffset, Y_MOUTHO + yOffset, MOUTH_WIDTH, MOUTH_HEIGHTO + 3 * i, MOUTH_START_ANGLE, MOUTH_EXTENT_ANGLE);
55
56         }
57         //循环结束后i的值为5
58         xOffset = 50 * i;
59         yOffset = 30 * i;
60         canvas.setColor(Color.BLACK);
61         canvas.drawOval(X_FACEO + xOffset, Y_FACEO + yOffset,FACE_DIAMETER,FACE_DIAMETER);

        canvas.drawString("zhangjie is a hardworking boy", X_FACEO+xOffset+FACE_DIAMETER, Y_FACEO+yOffset);

62     }
63
64 }

代码太长,接着敲下去也没有什么意义了,还是先来分析分析代码。

最后的效果是没有显现出来的,drawString方法,它是会在笑脸的上方显示出文字的效果

还是先来简单的介绍一下drawString方法,它类似于绘制椭圆的方法,但是它的作用是用来显示文字而不是绘制图形。例如将hello显示在点(10,20)的位置:

canvas.drawString("hello",10,20);

java工程开发之图形化界面之(第四课)

时间: 2024-10-05 06:23:12

java工程开发之图形化界面之(第四课)的相关文章

java工程开发之图形化界面之(第一课)

下面我们先上代码: 1 package 一个事例图形小应用程序; 2 import javax.swing.JApplet; 3 import java.awt.Graphics; 4 5 public class 绘制图形 extends JApplet{ 6 public void paint(Graphics canvas){ 7 canvas.drawOval(100,50,200,200); 8 canvas.fillOval(155, 100, 10, 20); 9 canvas.f

java工程开发之图形化界面之(第三课)

上面我们讲述了通过JOptionPane进行文本I/O操作,一个是通过JOptionPane来获取的 参考链接:http://blog.sina.com.cn/s/blog_993d254201013pgh.html#cmt_3339216 JOptionPane类 1.属于javax.swing 包. 2.功能:定制四种不同种类的标准对话框. ConfirmDialog 确认对话框.提出问题,然后由用户自己来确认(按"Yes"或"No"按钮) InputDialo

java工程开发之图形化界面之(第五课)

下面我们将: 一)更加完整的解释Graphics类 二)使用方法来更清晰的重新编写前面图形小应用程序之一 三)介绍一些其他的绘图的方法 四)介绍方法init,它是类似于paint但是用于不同用途的另一个小应用程序方法 Graphics类 它的对象表示屏幕上的一块区域,当比这一说法包含更多的内容.这样的对象拥有让其在所表示的屏幕区域上绘制图案以及书写文本的方法. java工程开发之图形化界面之(第五课)

PySide——Python图形化界面

PySide——Python图形化界面 PySide——Python图形化界面入门教程(四) PySide——Python图形化界面入门教程(四) ——创建自己的信号槽 ——Creating Your Own Signals and Slots 原文链接:http://pythoncentral.io/pysidepyqt-tutorial-creating-your-own-signals-and-slots/ 你不必局限于Qt widget提供的信号,你可以使用Signal类来创建自己的信号

Java图形化界面设计——容器(JFrame)

Java图形化界面设计——容器(JFrame) 程序是为了方便用户使用的,因此实现图形化界面的程序编写是所有编程语言发展的必然趋势,在命令提示符下运行的程序可以让我们了解java程序的基本知识体系结构,现在就进入java图形化界面编程. 一.Java基本类(JFC) Java基本类(“JavaFoundationClasses”,JFC),由一些软件包组成.这些软件包主要包括下面一些应用程序接口(API): ·抽象窗口工具集(AWT)(1.1及以上版本). ·Swing构件. ·Java 2D应

二十七、Java图形化界面设计——容器(JFrame)

摘自http://blog.csdn.net/liujun13579/article/details/7756729 二十七.Java图形化界面设计--容器(JFrame) 程序是为了方便用户使用的,因此实现图形化界面的程序编写是所有编程语言发展的必然趋势,在命令提示符下运行的程序可以让我们了解java程序的基本知识体系结构,现在就进入java图形化界面编程. 一.Java基本类(JFC) Java基本类("JavaFoundationClasses",JFC),由一些软件包组成.这些

linux 下 VNC Server安装配置及 eclipse CDT C/C++ 开发环境搭建(我用的是阿里云服务器 ubuntu 12.04 64-bit,无图形化界面)

linux 下 VNC Server安装配置及 eclipse CDT C/C++ 开发环境搭建(我用的是阿里云服务器 ubuntu 12.04 64-bit,无图形化界面): 既然要用 eclipse 可视环境下开发,那首先要安装图形界面喽!!! 对开发者来说,个人认为 linux 选择界面优先选择顺序:Awesome(性能最好) > Xfce4 > gnome > unity-2d //////////////////////////////////////////////// 首先

java之图形化界面(GUI)

一.概述 用户与计算机进行交换的方式有两种: GLI:Command lin User Interface(命令行用户接口),也就是常见的dos窗口,它需要记住一些常用的命令,操作不直观方便. GUI:Graphical User Interface(图形用户接口),用图形的方式,来显示计算机操作的界面,这样更方便直观. 这两种交换方式就对应两种交互界面:命令行界面和图形化界面. 现在图形化界面是主流. Java为GUI提供的对象都在java.awt和javax.swing这两个包中. Awt和

三十三、Java图形化界面设计——布局管理器之null布局(空布局)

摘自http://blog.csdn.net/liujun13579/article/details/7774267 三十三.Java图形化界面设计--布局管理器之null布局(空布局) 一般容器都有默认布局方式,但是有时候需要精确指定各个组建的大小和位置,就需要用到空布局. 操作方法: 1)       首先利用setLayout(null)语句将容器的布局设置为null布局(空布局). 2)       再调用组件的setBounds(int x, int y, int width,int