下面我们将:

一)更加完整的解释Graphics类

二)使用方法来更清晰的重新编写前面图形小应用程序之一

三)介绍一些其他的绘图的方法

四)介绍方法init,它是类似于paint但是用于不同用途的另一个小应用程序方法

Graphics类

它的对象表示屏幕上的一块区域,当比这一说法包含更多的内容。这样的对象拥有让其在所表示的屏幕区域上绘制图案以及书写文本的方法。

Graphics_Object.drawOval(X,Y,Width,Heigth);//在点x,y处以指定的宽度和高度绘制椭圆的外部轮廓

Graphics_Object.fillOver(x,y,width,higth);//和drawOval一样,但是内部被填满

Graphics_Object.drawArc(x,y,width,hight,start_angle,arcangle);//绘制椭圆的一部分

Graphics_Object.fillArc(x,y,width,hight,start_angle,arcangle);//同drawArc,但是椭圆的可见部分是被填充的

Graphics_Object.drawRect(x,y,widthheight);//在点x,y处以指定的宽度和高度绘制整个矩形的外部轮廓

Graphics_Object.fillRect(x,y,widthheight);//同上,但是被填充

Graphics_Object.drawRect(x1,y1,x2,y2);//在这两点间画一条线

Graphics_Object.drawString(A_String,X,Y);//从X,Y位置开始绘制一条线

Graphics_Object.setColor(Color_Object);//设置后继绘图和文本使用的颜色。直到下一次更改前这个更改是一直有效的

这个用于小应用程序的Graphics对象来自何方?当你运行小应用程序时,自动创建一个适宜的Graphics对象,在paint被自动调用时,该对象被用作传递给小应用程序paint方法的参量。其中自动发生了很多事情,否则就要 你自己动手调用paint方法了。

/////////////////////////////////////////////////////////////////////////////////////

到目前为止,我们已经定义了小应用程序,已经定义了方法paint。你也能够在你编写小应用程序的任何时候定义另一个名称为init的方法。像paint一样,方法init在你运行小程序的时候被自动调用。然而从某种意义上来说,inti方法是一个对小应用程序来说比paint方法更为基础的方法。paint方法仅仅用于绘图,也就是说,用于类Graphics的方法调用。小应用程序的所有其它动作都是从init方法开始执行。小应用程序的init方法与应用程序的main方法用途相似。无论是时候,当你定义一个小应用程序类时,你通常都应该定义init方法。

/////////////////////////////////////////////////////////////////////////////////////

向小应用程序中添加标签

小应用程序中的标签比引起来的字符串要小一些,但他的处理方式与许多小应用程序部件(eg:按钮)的处理方式相同。因此,标签提供了向小应用程序添加文字的另一种方式。

eg:比如字符串这种东西可以通过drawString来实现,当然我们也可以通过标签的方式来实现使用的是方法init而不是paint。

在看代码细节之前我们还是先来看看小程序中使用的简单但是新颖的东西,留意下面的代码:

Container contentPage = getContentPane();

getContentPane称为小应用程序的内容池(Content Pane).我们可以将内容池看作是小应用程序的内部。当向小应用程序添加部件时,你把他们添加到该小应用程序的内容池中。内容池是类型为Container的对象,这是一个在java类库中为你定义的一个类这里Container的主要用途是声明变量,命名小应用程序的内容池。

 package 一个事例图形小应用程序;

 import javax.swing.JApplet;
import javax.swing.JLabel;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout; public class useLable extends JApplet {
public void init(){
Container contentPane = getContentPane();
contentPane.setBackground(Color.white); JLabel label1 = new JLabel ("My name is zhangjie\n");
JLabel label2 = new JLabel ("My name is tianxia\n");
contentPane.setLayout(new FlowLayout());
contentPane.add(label1);
contentPane.add(label2); }
}

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

  1. java工程开发之图形化界面之(第二课)

    上一节主要是讨论小的应用程序,在这里我们将采用一种全新的方式来重新编写它. 在这里我们注重关注JFrame和JOptionPane.这些类提供了在JAVA应用程序使用图形的方法以及在JAVA程序中对I ...

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

    下面我们先上代码: package 一个事例图形小应用程序; import javax.swing.JApplet; import java.awt.Graphics; public class 绘制 ...

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

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

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

    上面我们讲述了通过JOptionPane进行文本I/O操作,一个是通过JOptionPane来获取的 参考链接:http://blog.sina.com.cn/s/blog_993d254201013 ...

  5. 黑马程序员:Java基础总结----GUI图形化界面

    黑马程序员:Java基础总结 GUI图形化界面   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流!   GUI(Graphical User Interface)图形化界 ...

  6. PySide——Python图形化界面入门教程(五)

    PySide——Python图形化界面入门教程(五) ——QListWidget 翻译自:http://pythoncentral.io/pyside-pyqt-tutorial-the-qlistw ...

  7. Java 图形化界面设计(GUI)实战练习(代码)

    关于Java图形化界面设计,基础知识网上可搜,下面简单介绍一下重点概念,然后就由浅入深代码实例. 程序是为了方便用户使用的,Java引入图形化界面编程. 1.JFrame 是容器类 2.AWT 是抽象 ...

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

    转:http://blog.csdn.net/liujun13579/article/details/7756729 二十七.Java图形化界面设计——容器(JFrame) 程序是为了方便用户使用的, ...

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

    摘自http://blog.csdn.net/liujun13579/article/details/7756729 二十七.Java图形化界面设计--容器(JFrame) 程序是为了方便用户使用的, ...

随机推荐

  1. 1.编写一个Java应用程序,该程序中有3个类:Ladder、Circle和主类A。具体要求如下:Ladder类具有类型为double的上底、下底、高、面积属性,具有返回面积的功能,包括一个构造方法对上底、下底、高进行初始化。Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能,包括一个构造方法对半径进行初始化。主类A用来测试类Ladder和类Circle的功能。

    Ladder package com.hanqi.test; public class Ladder { //属性 double shangdi,xiadi,gao,mianji; //构造方法 La ...

  2. nginx: 响应体太大

    如果做proxy,可以将proxy配置修改buffer长度,或者直接关闭buffer.http { proxy_buffer_size 128k; proxy_buffers 4 256k; prox ...

  3. Redis简介四

    一..NET使用Redis 和MongoDB一样,在.NET中使用Redis其实也是使用第三方驱动,官网推荐的是使用ServiceStack.Redis(https://github.com/Serv ...

  4. HDU 3452 Bonsai

    可以转化成最小割的求解,题目其实就是要求把点分成两个集合,增加一个超级汇点,一部分的点在根节点所在集合内,一部分节点在超级汇点所在的集合内,这两就分开了,又要求费用最小,那么就是最小割. #inclu ...

  5. Linux Shell : Test命令参数解析

    格式: test conditions test -n string : string 不为空 test -z string : string 为空 test int1 -eq int2  : int ...

  6. 使用TcpTrace小工具截获Web Service的SOAP报文

    Web Service客户端对服务端进行调用时,请求和响应都使用SOAP报文进行通讯.在开发和测试时,常常查看SOAP报文的内容,以便进行分析和调试.TcpTrace是一款比较小巧的工具,可以让我们截 ...

  7. [转载] 关于Windows Boot Manager、Bootmgfw.efi、Bootx64.efi、bcdboot.exe 的详解

    原帖: http://bbs.wuyou.net/forum.php?mod=viewthread&tid=303679 前言:1.本教程针对于UEFI启动来叙述的,根据普遍的支持UEFI的机 ...

  8. 2016 ccpc 杭州赛区的总结

    毕竟是在杭电比的,和之前大连的icpc不同,杭电毕竟是隔壁学校,来回吃住全都是在自家寝室,方便! 不过说到方便也是有点不方便,室友都喜欢玩游戏,即使我昨晚9.30就睡觉了,仍然是凌晨一点才睡着,233 ...

  9. openCV(二)---iOS中使用openCV的图片格式转换

    可以实现将UIImage和IplImage类型实现相互转换 //由于OpenCV主要针对的是计算机视觉方面的处理,因此在函数库中,最重要的结构体是IplImage结构. - (IplImage *)C ...

  10. FreeRTOS中断优先级配置(重要)

    FreeRTOS中断优先级配置(重要) 本章节为大家讲解FreeRTOS中断优先级配置,此章节非常重要,初学者经常在这里犯迷糊.对于初学者来说,本章节务必要整明白.12.1 NVIC基础知识12.2  ...