图形程序设计

窗口:

窗口放置在左上角水平x像素,垂直y像素的位置:setLocation(x,y)

设置窗口的大小:setSize(width,height)

同时设置窗口的位置和大小:setBounds(x,y,width,height)

关闭窗口的相应动作:frame.setDefultCloseOperation(JFrame.EXIT_ON_CLOSE)

在显示窗口之前调用setLocationByPlatform(true)窗口系统会拾取窗口的位置

框架:获取或设置title属性,这个属性确定框架标题栏中的文字

public String getTitle()

public void setTitle(String Title)

框架大小:(放置在main中或某个构造函数中)

Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize(); //返回屏幕大小
int screenWidth = screenSize.width;
int screenHeight = screenSize.height;
setSize(screenWidth/2,screenHeight/2);//将框架大小设置为屏幕的一半
setLocationByPlatform(true);//然后告知窗口系统定位框架

将图像设置为框架的图标:

	Image img = kit.getImage("icon.gif");
	setIconImage(img);
	setTitle("SizedFrame");

将框架设置为最大:

frame.setExtendedState(Frame.MAXIMIZED_BOTH);

在组件中显示信息:

Graphics g = null;
	g.drawString("NOT A HELLO WORLD,world program", 75, 100);

用背景色绘制面板 

 super.paintComponent(g);

2D图形:

画一个矩形:

Graphics g = null;
    Graphics2D g2 = (Graphics2D) g;
    double leftx = 100;
    double topy = 100;
    double width = 200;
    double height = 150;
    Rectangle2D rect = new Rectangle2D.Double(leftx,topy,width,height);//Rectangle2D.float()
g2.draw(rect);

画一个封闭的椭圆:

Ellipse2D ellipse = new Ellipse2D.Double();
	ellipse.setFrame(rect);
	g2.draw(ellipse);

画一条直线:

g2.draw(new Line2D.Double(leftx,topy,leftx+width,topy+height));

画个同心圆:

double centerX = rect.getCenterX();
    double centerY = rect.getCenterY();
    double radius = 150;
    Ellipse2D circle = new Ellipse2D.Double();
    circle.setFrameFromCenter(centerX, centerY, centerX+radius, centerY+radius);
    g2.draw(circle);

返回闭合矩形的中心,以及最小最大x,y坐标值

double getCenterX()

double getCenterX()

double getMinX()

double getMinY()

double getMaxX()

double getMaxY()

返回闭合矩形的宽和高。

double getWidth()

double getHeight()

返回闭合矩形左上角x和y坐标

double getX()

double getY()

利用给定坐标画一个点

Point2D.Double(double x,double y)

颜色

填充一个封闭图形

Rectangle2D rect = ..;
    g2.setPaint(Color.RED);
    g2.fill(rect);

定制颜色:

g2.setPaint(new Color(0,128,128));

g2.drawString("Welcome!",75,125);

设置背景颜色:

MyComponent p = new MyComponent();

p.setBackground(Color.PINk);

获取或改变当前颜色。所有后续绘图操作都使用这个新颜色:

void setColor(Color red);// green.......and so on

获取或设置前景颜色

void setForeground(Color c);

为文本设定特殊字体

使用系统中的14号加粗的标准sansserif字体显示字符串hello world;字体风格还有 Font.PLAIN,Font.ITALIC, Font.BOLD+Font.ITALIC

Font sansbold14 = new Font("SansSerif",Font.BOLD,14);
	g2.setFont(sansbold14);
	String message = "Hello World!";
	g2.drawString(message,75,100);

  创建一个新字体对象:Font(String name,innt style,int size)

返回字体名:String getFontName()

返回家族名(姓):String getFamily()

如果采用逻辑字体名创建字体,将返回逻辑字体,例如sansserif,否则返回字体名:String getName()

返回包围这个字符串的矩形:

Rectangle2D getStringBounds(String s,FontRenderContext context)

返回测定字符串宽度的一个线性metrics对象

LineMetrics getLineMetrics(String s,FontRenderContext context)

Font deriveFont(int style)

Font deriveFont(float size)

返回一个新字体,除给定大小和字体风格外,其余与原字体一样

Font deriveFont(int style,float size)

返回字体上坡度:float getAscent()

返回字体下坡度:float getDscent()

返回字体行间距:float getLeading()

返回字体总高度:float getHeight()

获取或设置当前的字体。这种字体将被运用于后续的文本绘制操作中:

Font getFont()

void setFont(Font font)

采用当前字体和颜色绘制一个字符串

void drawString(String str,int x,int y)(将要绘制的字符串,字符串开始的x坐标,基线的y坐标)

返回这个图形文本中,指定字体特征的字体绘制环境:

FontRenderContext getFontRenderContext()

图像

读取一个图像(存储在本地):

String filename = "....";例如ball.gif

Image image = ImageIO.read(new File(filename));

如果不在本地:

String urlname = "....";例如http//baidu.com.......

Image image = ImageIO.read(new URL(urlname));

用:来显示图像

Graphics g = null;

g.drawImage(image,x,y,null);

从给定的文件或URl上读取图像:

static BufferedImage read(File f)

static BufferedImage read(URL u)

绘制一幅非比例图像:(可能未绘制完毕就返回)

boolean drawImage(Image img,int x,int y,ImageObserver observer )(将要绘制的图像,左上角x坐标,y坐标,绘制进程中要通知的对象(可能是null))

绘制一幅比例图像:(可能未绘制完毕就返回)

boolean drawImage(Image img,int x,int y,int width,int height,ImageObserver observer )

(将要绘制的图像,左上角x坐标,y坐标,图像的宽度,高度,绘制进程中要通知的对象(可能是null))

拷贝屏幕的一块区域:

void copyArea(int x,int y,int width,int height,int dx,int dy)

(原始区域的左上角x坐标,y坐标,原始区域的宽度,高度,原始区域到目标区域的水平距离,垂直距离)

时间: 2024-10-29 10:48:23

图形程序设计的相关文章

unity3d太空射击游戏----------《图形程序设计》课程设计说明书

广西科技大学 <图形程序设计>课程设计说明书             学生姓名:           江玉珍                  .    学    号:           201400404005           .         专    业:         数字媒体技术专业          . 班    级:            数媒141班             .    指导老师:              黄钟源               .    

201671010111 2016-2017-2《面向对象的程序设计》 图形程序设计

本周为第十一周,java的学习到了第十章的<图形程序设计>. 本周的理论课老师做了一个小检测,是对前四章知识点的复习与回顾.第一个小时的做题,第二个小时则交换答题纸进行批阅.老师是对所有的试题进行讲解.给人整体的感觉是前四章的学习也是极为认真的,但是在做题的时候显然还是有很多困难,有些答案还是有模棱两可的感觉.可能也是没有进行系统的复习的原因吧,老师也说了是通过测试的方式来督促同学们去复习前面的知识点. 由于时间有限的原因,测试题的最后一道编程题就流到了实验课上,老师带着所有同学一起编写了代码

java基础知识之图形程序设计-1

经过一段时期java语法的学习,从现在开始,我将进行图形用户界面(GUI)的java程序学习.以下是我对此的一点学习笔记. 在java1.0出现初期,采用了AWT库处理用户界面元素.随着时代发展,对于用户界面元素的要求提高,不同平台操作行为有偏差等原因,AWT显而易见已经过时.在此之后,Swing库顺理成章面世,并沿用至今.在这里,抛却Swing库的其他复杂理念,我们只对显示窗口和绘制内容的基本知识进行学习. 一.框架构造 java中,将未包含在其他窗口的顶层窗口称为框架.AWT库中包含一个Fr

基础知识(7)- 图形程序设计

7.1 Swing概述 7.2 创建框架 7.3 框架定位  7.3.1 框架属性  7.3.2 确定合适的框架大小 7.4 在组件中显示信息 7.5 处理2D图形 7.6 使用颜色 7.7 文本使用特殊字体 7.8 显示图像

201671010145 2016-2017《Java程序设计》JAVA图形程序设计基本框架

在Java 1.0 刚刚出现的时候,包含了一个用于基本GUI程序设计的类库,Sun将它称为抽象窗口工具箱(Abstract Window Toolkit, AWT). 1996年,Netscape创建了一种称为IFC(Internet Foundation Class)的GUI库.Sun与Netscape合作完善了这种方式,创建了一个名为Swing的用户界面库. Swing没有完全替代AWT,而是基于AWT架构之上.Swing仅仅提供了能力更加强大的用户界面组件.尤其在采用Swing编写的程序中

201671010129 2016—2017—2 《Java程序设计》学习Java的图形程序设计的小结

AWT构造图形界面用户的基本元素,用来设计GUI的组件类和容器类,大部分AWT组件都有其Swing的等价组件,Swing组件的名字一般是在AWT组件名前面添加一个字母"J"如JButton等. java把由Component类的子类或间接子类创建的对象称为一个组件,容器是Java中能容纳和排列组件的组件.常用的容器是框架,Container类提其他组件供了一个方法add(),用来容器类组件对象中添加其他组件,容器本身也是一个组件,可以把一个容器添加到另一个容器里,实现容器嵌套. 在Ja

201671010128 2017-11-12《Java程序设计》之图形程序设计

一.基本概念 Java的抽象窗口工具箱(Abstract Window Toolkit, AWT)包含在java.awt包中,它提供了许多用来设计GUI的组件类和容器类. AWT库处理用户界面元素的方法:把图形元素的创建和行为委托给本地GUI工具箱进行处理. 应用AWT编写依赖于本地用户界面元素GUI会暴露出一些缺陷.例如,菜单.滚动条和文本域这些用户界面元素,在不同的平台上,操作行为上存在一些微妙的差异. Swing用户界面库是非基于对等体的GUI工具箱. Swing具有更丰富并且更方便的用户

201671010135 2016--2017--《java程序设计:图形程序设计》

这章中主要从如何编写定义屏幕上的窗口大小和位置的程序:如何在窗口中采用多种字体显示文本:如何显示图像这三个问题展开. 对一个优秀的应用程序来书说,良好的图形用户接口必不可少,如果缺少良好的图形用户窗口会给客户理解和应用程序带来诸多不便.java的抽象窗口工具AWT和组件集Swing中包含了很多支持图形用户界面GUI的设计的类. 绝大多数Swing组件类都由"J"开头.如果忘记写"J"虽然还是可以进行编译和运行,但是如果遇到AWT同时使用的话会导致视觉和行为的混搅.设

java - 图形程序设计

一.创建框架 框架(frame),没有包含其他窗口的窗口 swing 基于 awt, 创建框架第一步,需要导入swing 与 awt 的包 import java.awt.*; import javax.swing.*; //swing 在java的扩展包中 /** * 文件名:SimpleFrameTest.java * 功能:了解框架搭建部署 * 步骤: * 1. 定义子类SimpleFrame,构造器中大小设置为300 * 200 象素 * 2. 在SimpleFrameTest中的mai