JAVA学习之JAVA 2D图形绘制

最近一直没有空写博客,事情比较多,静不下心,事情顺其自然好了,有些事我也不懂为什么会变成现在这样,你以为你付出了你最珍贵的,但或许别人并不喜欢。算了,不多想,顺其自然好了。

JAVA在图形绘制方面效率跟不上C++,但是我觉得JAVA也有其在图形方面的一些优势,不过对于大型桌面游戏就不行了,估计连流畅度都不能保证。

下面给出最近写的代码:

package draw;
import java.awt.*;
import javax.swing.*;
import java.awt.geom.*;

public class DrawTest
{
	public static void main(String[] args)
	{
		EventQueue.invokeLater(new Runnable()
				{
					public void run()
					{
						JFrame frame=new DrawFrame();
						frame.setTitle("Draw");
						frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
						frame.setVisible(true);
					}
				});
	}
}

class DrawFrame extends JFrame
{
	public DrawFrame()
	{
		add(new DrawComponent());
		pack();
	}
}

class DrawComponent extends JComponent
{
	private static final int DEFAULT_WIDTH=400;
	private static final int DEFAULT_HEIGHT=400;
	public void paintComponent(Graphics g)
	{
		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);
		g2.draw(rect);
		Ellipse2D ellipse=new Ellipse2D.Double();
		ellipse.setFrame(rect);
		g2.draw(ellipse);

		g2.draw(new Line2D.Double(leftX,topY,width,height));

		double centerX=rect.getCenterX();
		double centerY=rect.getCenterY();
		double radius=150;

		Ellipse2D circle=new Ellipse2D.Double(centerX,centerY,centerX+radius,centerY+radius);
		circle.setFrameFromCenter(centerX,centerY,centerX+radius,centerY+radius);
		g2.draw(circle);
	}
	public Dimension getPreferredSize()
	{
		return new Dimension(DEFAULT_WIDTH,DEFAULT_HEIGHT);
	}
}

  

这是效果图,我正在考虑要不要用JAVA来做GUI,然后来调用我之前项目中写的一些DLL文件,这样导师让我做的界面就很容易了,本来导师让我用OpenGL做界面,感觉那样这不就是开发一个微型Swing或者WPF吗。。。

时间: 2024-12-29 11:55:29

JAVA学习之JAVA 2D图形绘制的相关文章

JAVA学习篇--Java类加载

由来: 与普通程序不同的是,Java程序(class文件)并不是本地的可执行程序(解释性语言).当运行Java程序时,首先运行JVM(Java虚拟机),然后再把Javaclass加载到JVM里头运行,负责加载Javaclass的这部分就ClassLoader.中文叫做类加载器. 类加载器就好比一个代理,你需要什么,我通过类加载器将你需要的内容返回给你! 类加载器有什么作用? 当程序需要的某个类,那么需要通过类加载器把类的二进制加载到内存中. 解释: 类加载器也是Java类,因为其他是java类的

Android中GPU硬件加速控制及其在2D图形绘制上的局限

图形的渲染可分为两种:软件渲染和硬件渲染.软件渲染是靠CPU计算各种坐标并绘制,主要是占用内存:硬件渲染是靠GPU,主要占用显存,一般的3D图形程序(OpenGL.DirectX)都是GPU加速的. 在Android3.0之前,2D绘图API只支持软件渲染模式,从Android3.0开始,2D绘图API开始支持GPU硬件渲染,即View中的Canvas的绘图操作会使用GPU,所以从Android 3.0(API Level 11)开始,View中就多了一些和硬件相关的方法.如果App的Andro

JAVA学习篇--JAVA的两种编程模式对比

在Drp项目中,讲解了两种编程模式Model 1和Model2,下面是对这两种模式的简单理解,以及由于Model2是基于MVC架构的模式,就将我们易混淆的MVC与我们之前学的三层架构进行对比学习一下. Model1 所谓Model1就是JSP大行其道的时代,在Model1模式下,整个Web应用几乎全部由JSP页面组成,JSP页面接收处理客户端请求,对请求处理后直接做出响应.用少量的JavaBean来处理数据库连接.数据库访问等操作. 代码示例:修改用户信息 主页面的js跳转: function

[ Java学习基础 ] Java构造函数

构造方法是类中特殊方法,用来初始化类的实例变量,它在创建对象(new运算符)之后自动调用. Java构造方法的特点如下: 构造方法名必须与类名相同. 构造方法没有任何返回值,包括void. 构造方法只能与new运算符结合使用. 示例代码如下: 1 //Rectangle.java文件 2 package com.a51work6; 3 4 // 矩形类 5 public class Rectangle { 6 7 // 矩形宽度 8 int width; 9 // 矩形高度 10 int hei

好程序员Java学习路线Java bean是个什么概念

好程序员Java学习路线Java bean是个什么概念,Bean的中文含义是"豆子",顾名思义JavaBean是一段Java小程序.JavaBean实际上是指一种特殊的Java类,它通常用来实现一些比较常用的简单功能,并可以很容易的被重用或者是插入其他应用程序中去.所有遵循一定编程原则的Java类都可以被称作JavaBean.一. Java Bean技术概述??????? Java Bean是基于Java的组件模型,由属性.方法和事件3部分组成.在该模型中,JavaBean可以被修改或

最全Java学习路线图——Java学习指南

准备篇 适用/适合人群:适合基础小白 目标:掌握JavaSE. ●技术点小节: 1.开发工具的安装配置的介绍 2.JDK安装 3.DOS环境编程 4.Eclipse的安装使用 ●JAVA基础 1.基本的语法规范 2.数据类型 3.流程控制 4.函数 ●初识JavaOOP 1.类,对象,面向编程思想 2.字符串类 3.随机数 4.正则表达式 5.递归的使用 ●JavaOOP基础 1.JavaOOP之封装 2.JavaOOP之继承 3.JavaOOP之多态 4.Java访问修饰符 5.Java接口

Java学习随笔 - Java保留字

零.说在前面 之前主要是学C/CPP,由于某些原因,打算从头开始把Java的基础从头过一遍,巩固一下.于是,从今天开始开坑Java学习随笔,会将自己在复习Java过程中的一些心得体会啥的写上来,帮助自己整理知识. 一.synchronized synchronized关键字之前都没见过,于是Google了一下.它的作用是给对象.方法.代码块加锁,使得同时只能有一个线程执行.使用.相当于是互斥的一种关系. 二.transient 一个类在实现了Serializable接口之后,其中有部分数据不想进

[Java学习笔记] Java核心技术 卷1 第四章

第4章 对象与类 4.1 类和对象的基本概念 描述了类和对象的基本概念,以及类之间的关系介绍. 程序中的很多对象来自于标准库,还有一些自定义的. 结构化程序设计:通过设计一系列的过程(算法),选择合适的存储方式来解决问题. 算法+数据结构 4.1.1 类/封装/继承 类是构造对象的模板,由类构造对象的过程称为创建类的实例. 封装:也称为数据隐藏.从形式上看,封装不过是将数据和行为组合在一个包中,并对对象的使用者隐藏了数据的实现方式.优点4.2.3 实例域:对象中的数据. 方法:操纵数据的过程.

<JAVA学习一>JAVA简介

 摘要: 本篇博客仅作为笔记,如有侵权,请联系,立即删除(网上找博客学习,然后手记笔记,因纸质笔记不便保存,所以保存到网络笔记). 一.什么是JAVA语言 OAK--JAVA语法规则与C++类似. 有更高的可靠性,较高的安全性. 编译型+解释型. 二.JAVA的应用领域 开发工具Eclipse.NetBeans.JBuilder等. 三.JAVA的版本 1.JAVA SE(基础版本) JAVA SE是JAVA的标准版,主要用于桌面应用程序的开发. 2.JAVA EE JAVA EE是JAVA的企