java绘图工具类

java绘图工具类
java绘图工具类

package com.jjgame.boss;

import java.util.*;

import java.io.*;

import java.text.*;

import java.math.*;

import java.awt.*;

import javax.servlet.*;

import javax.servlet.http.*;

import org.jfree.chart.*;

import org.jfree.chart.plot.*;

import org.jfree.chart.axis.*;

import org.jfree.chart.servlet.ServletUtilities;

import https://www.360docs.net/doc/dc7064191.html,bels.StandardCategoryToolTipGenerator ;

import https://www.360docs.net/doc/dc7064191.html,bels.StandardPieSectionLabelGenerator;

import https://www.360docs.net/doc/dc7064191.html,bels.StandardCategoryItemLabelGenerator;

import org.jfree.chart.entity.StandardEntityCollection;

import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;

import org.jfree.chart.renderer.category.BarRenderer;

import org.jfree.data.xy.XYDataset;

import org.jfree.data.general.DefaultPieDataset;

import org.jfree.data.time.*;

import org.jfree.data.category.DefaultCategoryDataset;

public class ChartUtil {

// 图标数据

private class chartData {

private String name;

private double value;

private int index;

private String index_name;

chartData(String name, double value, int index, String index_name) { https://www.360docs.net/doc/dc7064191.html, = name;

this.value = value;

this.index = index;

this.index_name = index_name;

}

};

private Vector dset;

private https://www.360docs.net/doc/dc7064191.html,ng.Class date_class;

private int time_tick_type = 2;

private java.util.Date start_time;

private java.util.Date end_time;

private double l_limit, u_limit;

private String time_fmt;

private String time_axis_fmt;

private boolean horizontal_flag;

private boolean shapes_visible;

private int auto_tick_n;

public ChartUtil() {

date_class = Day.class;

start_time = new java.util.Date();

end_time = new java.util.Date();

l_limit = 0.0D;

u_limit = 0.0D;

time_fmt = "yyyy-M-d";

time_axis_fmt = "M-d";

horizontal_flag = false;

shapes_visible = true;

this.auto_tick_n = 15;

dset = new Vector();

}

public ChartUtil(String date_type,

String start_time, String end_time, String time_fmt,

double l_limit, double u_limit,

String time_axis_fmt) {

SimpleDateFormat fmt = new SimpleDateFormat(time_fmt);

setDateClass(date_type);

this.start_time = new java.util.Date();

this.end_time = new java.util.Date();

this.start_time = fmt.parse(start_time, new ParsePosition(0));

this.end_time = fmt.parse(end_time, new ParsePosition(0));

this.l_limit = l_limit;

this.u_limit = u_limit;

this.time_fmt = time_fmt;

this.time_axis_fmt = time_axis_fmt;

this.horizontal_flag = false;

this.shapes_visible = true;

this.auto_tick_n = 15;

dset = new Vector();

}

public void addData(String name, double value) {

dset.addElement(new chartData(name, value, 0, null));

}

public void addData(String name, double value, int index, String index_name) { dset.addElement(new chartData(name, value, index, index_name));

}

public void clearData() {

dset.clear();

}

public void setTimeFormat(String time_fmt, String time_axis_fmt) {

this.time_fmt = time_fmt;

this.time_axis_fmt = time_axis_fmt;

}

public void setValueRange(double l_limit, double u_limit) {

this.l_limit = l_limit;

this.u_limit = u_limit;

}

public void setTimeRange(String start_time, String end_time) {

SimpleDateFormat fmt = new SimpleDateFormat(time_fmt);

this.start_time = fmt.parse(start_time, new ParsePosition(0));

this.end_time = fmt.parse(end_time, new ParsePosition(0));

}

public void setHorizontalBar(boolean flag) {

horizontal_flag = flag;

}

public void setShapesVisible(boolean flag) {

shapes_visible = flag;

}

public void setAutoTickN(int n) {

auto_tick_n = n;

}

private String outChart(JFreeChart chart, int width, int height, HttpSession session) throws Exception {

ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());

String filename = ServletUtilities.saveChartAsPNG(chart, width, height, info, session); // ChartUtilities.writeImageMap(pw, filename, info, false);

// pw.flush();

return filename;

}

public String generatePieChart(

String title,

int width,

int height,

HttpSession session) {

String filename = null;

try {

DefaultPieDataset dataset = new DefaultPieDataset();

Iterator it = dset.iterator();

while (it.hasNext()) {

chartData data = it.next();

dataset.setValue(https://www.360docs.net/doc/dc7064191.html,, data.value);

}

JFreeChart chart = ChartFactory.createPieChart3D(

title, dataset,

true, true, false );

// Write the chart image to the temporary directory

PiePlot pieplot = (PiePlot)chart.getPlot();

pieplot.setBackgroundPaint(Color.lightGray);

pieplot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}:{1}({2})"));

filename = outChart(chart, width, height, session);

} catch (Exception e) {

System.out.println("Exception - " + e.toString());

e.printStackTrace(System.out);

filename = "picture_error.png";

}

return filename;

}

private void setupTimeChartShape(JFreeChart chart) {

XYPlot xyplot = (XYPlot)chart.getPlot();

// 设置背景颜色

xyplot.setBackgroundAlpha(0f);//

//xyplot.setBackgroundPaint(Color.white);

//前景色透明度

//xyplot.setForegroundAlpha(0.5f);

// 设置网格线是否可见

xyplot.setDomainGridlinesVisible(true);//设置网格竖线(Domain轴)颜色

xyplot.setRangeGridlinesVisible(true);//设置网格横线颜色

// 设置网格线的颜色

xyplot.setDomainGridlinePaint(Color.gray);

xyplot.setRangeGridlinePaint(Color.gray);

XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer)xyplot.getRenderer();

// 设置曲线的颜色和粗细

renderer.setSeriesPaint(0, Color.blue);

renderer.setBaseStroke(new BasicStroke(1.5F));

renderer.setBaseShapesVisible(shapes_visible); // 线上的点用图形标记出来

// 设置曲线上点图形的颜色

// renderer.setSeriesFillPaint(0, Color.white);

// renderer.setUseFillPaint(true);

}

private void setupTimeChartAxis(JFreeChart chart) {

SimpleDateFormat fmt = new SimpleDateFormat(time_axis_fmt);

XYPlot xyplot = (XYPlot)chart.getPlot();

NumberAxis numberaxis = (NumberAxis)xyplot.getRangeAxis();

DateAxis dateaxis = (DateAxis)xyplot.getDomainAxis();

// 设置时间轴上下限

dateaxis.setRange(start_time, end_time);

DateTickUnit tickUnit = dateaxis.getTickUnit();

if (xyplot.getDataset().getItemCount(0) > auto_tick_n)

dateaxis.setStandardTickUnits(DateAxis.createStandardDateTickUnits(TimeZone.getDefault() ));

else

dateaxis.setTickUnit(new DateTickUnit(time_tick_type, 1));

// dateaxis.setTickUnit(new DateTickUnit(DateTickUnit.MONTH, 1));

// dateaxis.setVerticalTickLabels(true);

// 设置时间轴标签格式

dateaxis.setDateFormatOverride(fmt);

// 设置为自适应

numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

// 设置纵轴上下限

DispLimit dl = new DispLimit();

if (l_limit > 0.0 || u_limit > 0.0)

numberaxis.setRange(l_limit, u_limit);

}

public void setDateClass(String date_type) {

if (date_type.equals("Day")) {

time_tick_type = DateTickUnit.DAY;

date_class = Day.class;

} else if (date_type.equals("Month")) {

time_tick_type = DateTickUnit.MONTH;

date_class = Month.class;

} else if (date_type.equals("Hour")) {

time_tick_type = DateTickUnit.HOUR;

date_class = Hour.class;

} else if (date_type.equals("Minute")) {

time_tick_type = DateTickUnit.MINUTE;

date_class = Minute.class;

} else if (date_type.equals("Second")) {

time_tick_type = DateTickUnit.SECOND;

date_class = Second.class;

} else if (date_type.equals("Year")) {

time_tick_type = DateTickUnit.YEAR;

date_class = Year.class;

} else if (date_type.equals("Week")) {

time_tick_type = DateTickUnit.DAY;

date_class = Week.class;

} else if (date_type.equals("Millisecond")) {

time_tick_type = https://www.360docs.net/doc/dc7064191.html,LISECOND;

date_class = Millisecond.class;

}

}

private TimeSeries getTimeSeries(TimeSeriesCollection timesc, chartData data) {

TimeSeries ts = null;

try {

ts = timesc.getSeries(data.index);

}

catch (Exception e) {

ts = new TimeSeries(data.index_name, date_class);

timesc.addSeries(ts);

}

return ts;

}

public String generateTimeChart(

String title,

String timeLabel,

String valueLabel,

String seriesName,

int width,

int height,

HttpSession session) {

String filename = null;

try {

TimeSeriesCollection timesc = new TimeSeriesCollection();

// TimeSeries timeseries = new TimeSeries(seriesName, date_class);

for (chartData data : dset) {

if (data.index_name == null)

data.index_name = seriesName;

TimeSeries ts = getTimeSeries(timesc, data);

SimpleDateFormat fmt = new SimpleDateFormat(time_fmt);

java.util.Date d = new java.util.Date();

d = fmt.parse(https://www.360docs.net/doc/dc7064191.html,, new ParsePosition(0));

// Day day = new Day(d);

// timeseries.addOrUpdate(day, data.value);

ts.addOrUpdate(RegularTimePeriod.createInstance(date_class, d, TimeZone.getDefault()), data.value);

}

JFreeChart chart = ChartFactory.createTimeSeriesChart(

title, timeLabel, valueLabel, timesc,

true, true, false );

// 设置线条,背景等外观格式

setupTimeChartShape(chart);

// 设置轴标签的格式

setupTimeChartAxis(chart);

filename = outChart(chart, width, height, session);

} catch (Exception e) {

System.out.println("Exception - " + e.toString());

e.printStackTrace(System.out);

filename = "picture_error.png";

}

return filename;

}

private void setupBarChartShape(JFreeChart chart) {

CategoryPlot plot = (CategoryPlot)chart.getPlot();

// 设置背景颜色

plot.setBackgroundPaint(Color.lightGray);

// 设置网格线是否可见

plot.setRangeGridlinesVisible(true);

// 设置网格线的颜色

plot.setRangeGridlinePaint(Color.white);

BarRenderer renderer = (BarRenderer)plot.getRenderer();

renderer.setSeriesPaint(0, Color.blue);

renderer.setBaseItemLabelsVisible(true);

renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());

// 设置柱状图的轮廓线为不可见

renderer.setDrawBarOutline(false);

// renderer.setMaximumBarWidth(1.0D);

}

private void setupBarChartAxis(JFreeChart chart) {

SimpleDateFormat fmt = new SimpleDateFormat(time_axis_fmt);

CategoryPlot plot = (CategoryPlot)chart.getPlot();

NumberAxis numberaxis = (NumberAxis)plot.getRangeAxis();

CategoryAxis categoryaxis = (CategoryAxis)plot.getDomainAxis();

numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositi ons(Math.PI/4));

categoryaxis.setLowerMargin(0.01);

categoryaxis.setUpperMargin(0.01);

}

public String generateBarChart(

String title,

String domainLabel,

String rangeLabel,

int width,

int height,

HttpSession session) {

String filename = null;

try {

DefaultCategoryDataset dataset = new DefaultCategoryDataset();

Iterator it = dset.iterator();

while (it.hasNext()) {

chartData data = it.next();

if (data.index_name == null)

data.index_name = rangeLabel;

dataset.addValue(data.value, data.index_name, https://www.360docs.net/doc/dc7064191.html,);

}

PlotOrientation orient = PlotOrientation.VERTICAL;

if (horizontal_flag)

orient = PlotOrientation.HORIZONTAL;

JFreeChart chart = ChartFactory.createBarChart(

title, domainLabel, rangeLabel, dataset,

orient, true, true, false );

// 设置线条,背景等外观格式

setupBarChartShape(chart);

// 设置轴标签的格式

setupBarChartAxis(chart);

filename = outChart(chart, width, height, session);

} catch (Exception e) {

System.out.println("Exception - " + e.toString());

e.printStackTrace(System.out);

filename = "picture_error.png";

}

return filename;

}

}

12.常用工具类作业

常用工具类作业 一、填空题 1.在Java中每个Java基本类型在https://www.360docs.net/doc/dc7064191.html,ng包中都在一个相应的包装类,把基本类型数据 转换为对象,其中包装类Integer是______object______的直接子类。 2.包装类Integer的静态方法可以将字符串类型的数字”123”转换成基本整型变量n,其 实现语句是:__String_toHexString(int i)_________。 3.在Java中使用https://www.360docs.net/doc/dc7064191.html,ng包中的______String______类来创建一个字符串对象,它代表一 个字符序列可变的字符串,可以通过相应的方法改变这个字符串对象的字符序列。 4.StringBuilder类是StringBuffer类的替代类,两者的共同点是都是可变长度字符串,其中 线程安全的类是_____StringBuilder_________。 5.DateFormat类可以实现字符串和日期类型之间的格式转换,其中将日期类型转换为指定 的字符串格式的方法名是______________。 6.使用Math.random( )返回带正号的double值,该值大于等于0.0且小于1.0。使用该函 数生成[30,60]之间的随机整数的语句是____double key=(double)(math.random()*(n>=30&&n<=60))__________。 7.JDK1.5后提供了___emum_________关键字,用以定义枚举类。枚举类是一种特殊的类, 可以有自己的属性、方法和构造方法。 8.File对象调用方法创建一个目录,不包括所有必需但不存在的父目录,当且仅当已创建 目录时,返回true;否则返回false。 二、选择题 1. 以下选项中关于int和Integer的说法错误的是(ac )。(选择二项) A. int是基本数据类型,Integer是int的包装类,是引用数据类型 B. int的默认值是0,Integer的默认值也是0 C. Integer可以封装了属性和方法提供更多的功能 D. Integer i=5;该语句在JDK1.5之后可以正确执行,使用了自动拆箱功能 2. 分析如下Java代码,该程序编译后的运行结果是( d )。(选择一项) publicstaticvoid main(String[ ] args) { String str=null; str.concat("abc"); str.concat("def"); System.out.println(str); } A null B. abcdef C. 编译错误 D. 运行时出现NullPointerException异常 3. 以下关于String类的代码的执行结果是( b )。(选择一项)

JAVA-画图工具全解

摘要 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 JAVA是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,是目前软件设计中极为健壮的编程语言。JAVA不仅可以用来开发大型的应用程序。而且特别适合Internet的应用开发。JAVA确实具备“一次写成,处处运行”的特点,JAVA以成为网络时代最重要的编程语言之一。本报告中介绍了用JAVA语言实现画笔系统的全部过程。 本次课程设计是配合JAVA程序设计课程,帮助我们深入学习掌握JAVA语言,熟练运用这个工具来编写的。通过课程设计各个项目的综合训练,培养学生实际分析问题、编程和动手能力、提高学生的综合素质。本课程设计尝试使用一些较生动的示例和设计项目,激发学生学习兴趣,引导学生主动学习,正确理解、接受需要重点掌握的知识点,为参加项目开发及更深入学习做好准备。 本次课程设计主要是用JAVA实现画笔系统,其系统主要完成以下功能:设计一个画图程序,能够实现画笔、画直线、画圆形、画矩形、修改该画笔的大小以及颜色。该画图程序还需具有橡皮擦功能以及清空整个画面的功能 关键词:画图工具,JA V A

目录 摘要 (1) 目录 (2) 1.绪论 (3) 2. 开发环境介绍 (4) 3.需求分析 (5) 3.1总体目标..................................... 错误!未定义书签。 3.2要实现的功能 (7) 4.概要设计 (8) 4.1设计准备 (8) 4.2需要用到的类 (8) 5.详细设计 (9) 5.5类的设计 (9) 5.2类的方法设计 (9) 6.测试数据及运行结果 (8) 7.总结 (15) 8.参考文献 (15) 9.源程序 (15)

java面向对实验八Java常见工具类使用

实 验过程 及步骤实验一运行结果截图: 实验二: import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Test { public static void main(String[] arge) { Date da = new Date(); //使用Date类记录当前时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年M 月d日,HH:mm:ss"); System.out.println(da.toString()); System.out.println(sdf.format(da)); Calendar cd = Calendar.getInstance(); //使用Calendar记录当前时间 Date da1 = cd.getTime(); System.out.println(da1.toString()); System.out.println(sdf.format(da1)); try { //输入日期并输出System.out.println(sdf.format(sdf.parse("2005年5月2日,14:52:30")));

} catch (ParseException e) { e.printStackTrace();}}} 实 验 过 程 及 步 骤 实验二运行结果截图: 实 验结果 及分析(1)实验一分析: 通过直接赋值的方式时,两个String指向的是同一个对象,所以两种比较都相等。 将str1,str2转换成StringBuffer对象比较,两种比较都是比较的对象地址,所以都不相等。 在str1后面添加一个字符串“abc”后,指向了一个新的字符对象,所以两种比较都不相等。 在sb1后加“abc“生成sb3再与sb1比较,此时两个指向同一个对象,两种比较都相等。 通过创建String对象的方式创建st1和st2,由于是两个不同对象,所以“==”比较不相等,但内容相同,所以“equals”比较相等。 实验二分析:输入日期时需要进行异常处理。 (2)心得体会: 教师评阅

常见的十四种Java开发工具及其特点(精)

常见的十四种Java开发工具及其特点 在计算机开发语言的历史中,从来没有哪种语言像Java那样受到如此众多厂商的支持,有如此多的开发工具,Java菜鸟们如初入大观园的刘姥姥,看花了眼,不知该如何选择。的确,这些工具各有所长,都没有绝对完美的,就算是老鸟也很难做出选择。在本文中我简要介绍了常见的十四种Java开发工具的特点,管中窥“器”,希望能对大家有所帮助。 1、SUN公司的JDK (Java Development Kit) SUN的Java不仅提了一个丰富的语言和运行环境,而且还提了一个免费的Java开发工具集(JDK)。开发人员和最终用户可以利用这个工具来开发Java程序。 JDK简单易学,可以通过任何文本编辑器,如:Windows记事本、UltrEdit、Editplus、FrontPage以及Dreamweaver等,编写Java源文件,然后在DOS窗口下,通过javac命令将Java源程序编译成字节码,通过java命令来执行编译后的字节码文件,这能带给DOS时代程序员美好的回忆。Java初学者一般都采用这种开发工具。 从初学者角度来看,采用JDK开发Java程序能够很快理解程序中各部分代码之间的关系,有利于理解Java面向对象的设计思想。JDK的另一个显著特点是随着Java(J2EE、J2SE以及J2ME)版本的升级而升级。但它的缺点也是非常明显的就是从事大规模企业级Java应用开发非常困难,不能进行复杂的Java软件开发,也不利于团体协同开发。 2、SUN公司的Java Workshop Sun公司于1996年3月26日推出了Java WorkShop 1.0,这是业界出现的第一个供Internet网使用的多平台开发工具,它可以满足各公司开发Internet和Intranet网应用软件的需要。Java WorkShop完全用Java语言编写,是当今市场上销售的第一个完全的Java开发环境,目前Java WorkShop的最新版本是3.0。Java Workshop的特点表现如下: 1)结构易于创建:在创建平台中立的网格结构方面,Java Workshop比其他任何一种Java开发工具都要方便。 2)可视化编程:Java Workshop的可视化编程特性是很基本的。Java Workshop允许程序员重新安排这些操作,甚至可以确定触发操作行为 的过滤器。Java Workshop产生的模板带有许多注释,这对程序员是很 有帮助的。 此外,Java WorkShop支持JDK1.1.3以及JavaBeans组件模型,API和语言特征增加了编译Java应用程序的灵活性。Java WorkShop开发环境由于完全用Java写成,所以可移植性极好,以致于多个平台都能支持。目前Java WorkShop 支持Solaris操作环境SPARC及Intel版)、Windows 95、Windows NT、以及HP/Ux 等平台。适合于初学者进行一些简单的Java编程。Java WorkShop的缺点是Java Workshop中的每一个可视化对象都迟早会用到网格布局,这种设计方法是许多

Java画图软件设计报告

佛山科学技术学院 《可视化编程技术》课程设计报告 画图软件设计 学生姓名:周敏婷 学号:2011914123 年级专业:11级教育技术学2班 指导老师:容汝佳 学院:教育科学学院 广东★佛山 提交日期:2013年6月

目录 1. 前言 (2) 2.概要设计 (3) 2.1 开发环境 (3) 2.2 画图软件功能 (3) 2.3 界面设计 (3) 2.4 类的框架结构图 (4) 3. 详细设计 (4) 3.1 使用的JAVA类的说明 (4) 3.2 类的主要方法 (5) 3.2.1 颜色选择器 (5) 3.2.2 控制画笔样式 (5) 3.2.3 选取颜色按钮的监听件类 (6) 3.2.4 设计总体认识 (6) 3.2.5 程序流程图 (7) 4. 运行结果 (7) 5. 测试分析 (8) 5.1 程序运行情况 (8) 6. 源程序 (8) 参考文献 (14) 设计总结 (14)

摘要:该程序是一个图形界面的简单的java画图软件,具有良好的界面,使用人员能快捷简单地进行操作。该画图软件操作较为简单,只需要一直按着左键就能根据你鼠标移动的方面,画出你想要的图案。你也可以选择你自己想到的颜色和画笔的粗细。而且可以显示你当前的画笔的状态。界面为灰白对称。是一个非常简单的作图工具,让人能轻松上手。 关键字:java,画图类,方法,事件 1 前言 随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。文本编辑器是个人计算机最司空见惯的应用程序了,在学习了Java语言之后,我决定使用Java语言编写一个简单的画图工具,可以实现简单的画图作图功能,满足日常基本的工作学习和娱乐需要。 Java是由Sun公司开发的新一代纯面向对象的网络编程语言。其目标是建立一种在任意种机器、任一种操作系统的网络环境中运行的软件,实行所谓的“程序写一次,到处运行”的目标。正因为如此,Java已成为当今Internet上最流行、最受欢迎的一种程序开发语言。 Java开发小组把Java按特性分为基本版、移动版、企业版,每个版本有一个软件开发包。Java基本版本叫Java 2标准版(Java 2 Standard Edition,J2SE),它包含建立Java应用程序或者是Applet所需的应用程序编程接口(API)。Java 2移动版(The Java 2 Mobile Edition,J2ME)包含创建无线Java应用程序的API。还有Java 2企业版(The Java 2 Enterprise,J2EE)是J2SE的增强版本,包含建立多层架构应用程序API。 Java语言是由C++语言发展起而来的,是一种彻底的面向对象的程序设计语言。作为一种纯面向对象的程序设计语言,它非常适合大型软件的开发。Java 语言去掉了C++语言的一些容易引起错误的特性。Java语言的特点有:面向对象、跨平台、安全性、多线程和图形功能强。

JAVA绘图实验报告

南京工程学院 实 验 报 告 课程名称 java基础 实验项目名称 图形用户界面设计 实验学生班级 实验学生姓名 学 号 同组学生姓名 无 实验时间 2012年11月 实验地点 实验成绩评定 指导教师签字 年 月 日 一、实验目的和要求 1.目的:掌握java awt及swing组件的使用方法,包括窗口、框 架、对话框、布局方式、面板、文本编辑器、按钮、组合框等,合理利 用委托事件处理模型,掌握不同组件,不同事件的事件处理方法,设计 出能够响应事件的java图形用户界面。 2.要求:设计图形用户界面,事件处理,异常处理并弹出对话框, 提示重新输入信息。 二、实验题目 验证哥德巴赫猜想,添加图形用户界面 三、实验方法与步骤(需求分析、算法设计思路、流程图等) 1.添加图形用户界面 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class gdbh extends frame implements actionlistener //窗口框架响应单击事件,利用awt组件设计框架 { private button button; //按钮 private textfield text1; //文本行 private textarea text2; //文本区 public gdbh() { super(验证哥德巴赫猜想); //设置框架窗口标题 this.setbounds(450, 200, 350, 400); //设置框架的位置 和尺寸 this.setresizable(false); // 设置框

16个超级实用的Java工具包

16个超级实用的Java工具包 一. https://www.360docs.net/doc/dc7064191.html,mons.io.IOUtils closeQuietly:关闭一个IO流、socket、或者selector且不抛出异常,通常放在finally块 toString:转换IO流、 Uri、 byte[]为String copy:IO流数据复制,从输入流写到输出流中,最大支持2GB toByteArray:从输入流、URI获取byte[] write:把字节. 字符等写入输出流 toInputStream:把字符转换为输入流 readLines:从输入流中读取多行数据,返回List copyLarge:同copy,支持2GB以上数据的复制 lineIterator:从输入流返回一个迭代器,根据参数要求读取的数据量,全部读取,如果数据不够,则失败 二. https://www.360docs.net/doc/dc7064191.html,mons.io.FileUtils deleteDirectory:删除文件夹 readFileToString:以字符形式读取文件内容 deleteQueitly:删除文件或文件夹且不会抛出异常 copyFile:复制文件 writeStringToFile:把字符写到目标文件,如果文件不存在,则创建forceMkdir:强制创建文件夹,如果该文件夹父级目录不存在,则创建父级write:把字符写到指定文件中

listFiles:列举某个目录下的文件(根据过滤器) copyDirectory:复制文件夹 forceDelete:强制删前端的学习都是需要不断的学习,学一天停一停相当于白学,学习效果很差,如果你想有人一起学习可以来这个扣裙,首先是132 中间是667最后是127 都是零基础的同学,大家相互鼓励共同努力只是学着玩就不建议来了!!!除文件 三. https://www.360docs.net/doc/dc7064191.html,ng.StringUtils isBlank:字符串是否为空 (trim后判断) isEmpty:字符串是否为空 (不trim并判断) equals:字符串是否相等 join:合并数组为单一字符串,可传分隔符 split:分割字符串 EMPTY:返回空字符串 trimToNull:trim后为空字符串则转换为null replace:替换字符串 四. org.apache.http.util.EntityUtils toString:把Entity转换为字符串 consume:确保Entity中的内容全部被消费。可以看到源码里又一次消费了Entity的内容,假如用户没有消费,那调用Entity时候将会把它消费掉 toByteArray:把Entity转换为字节流 consumeQuietly:和consume一样,但不抛异常 getContentCharset:获取内容的编码 五. https://www.360docs.net/doc/dc7064191.html,ng3.StringUtils

java简易画图板

华北科技学院 课程设计说明书 班级: 网络B101 设计题目: 画图板软件开发和设计 评语:_________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ 评阅成绩:____评阅教师:_____ 目录 1 引言 (1)

1.1课程设计选题 (1) 1.2课程设计的目的 (1) 1.3本选题的设计背景 (1) 2 需求分析 (1) 2.1 功能需求 (1) 2.2 系统的开发运行环境 (2) 3 总体设计 (2) 3.1 系统体系结构设计 (2) 3.2系统功能模块及主要类设计 (3) 4 详细设计与实现 (6) 4.1 菜单栏模块 (6) 4.2 文字字型工具栏模块 (7) 4.3 工具栏模块 (8) 4.4 颜色选择面板模块 (10) 4.5 鼠标状态栏模块 (12) 4.6 画图区域以及整体布局模块 (13) 5 小结和展望 (15) 参考文献 (17) 附录 (17) 使用说明书 (17)

1引言 1.1课程设计选题 《画图板软件开发和设计》 1.2课程设计的目的 使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。 1.3本选题的设计背景 平时生活中,我们会需要处理一些基本的图像,也有可能需要花一些简单的图像,平时所使用的图形处理工具有 PhotoShop、Windows 画图工具等,其中PhotoShop 是一款非常强大的图形处理工具,Windows 画图工具则是一款较为简单的画图工具,功能较为简单,用Windows画图工具,是一种比较简单与具有代表性的画图工具,虽然功能不够强大,但具有大多图片处理程序所必需的基本功能:铅笔画图、各种数学函数图形、填色、取色、橡皮擦等等。所以这次课程设计我做的就是一个仿照Windows画板的程序。 通过画图板软件开发与设计,更深刻地体会java语言较之其他语言在图形用户界面的优势。熟悉java语言中常用的关于画图的各个类的功能和常用的方法(java图形用户界面中的众多函数与类的关系),并在实验过程中加深对java语言的理解与运用。 2需求分析 2.1 功能需求 对于绘图软件,应具备最基本的绘制直线,矩形框,圆形框,椭圆框等最基本功能,此外,要可以对绘制的图形进行修改;将绘制好的图形进行保存,打开以前保存的图形;在需要的时候,可以绘制实心矩形,实心圆形,实心椭圆等常见的几何图形。可

Java常用工具类

Java常用工具类 一)日期工具类[DateUtil] 1.计算给定时间至今的天数: long date2day(String date) 2.得到当前年: int getYear() 3.得到当前月: int getMonth() 4.得到当前日: int getDay() 5.返回当前月(01~12): String getMonth2() 6.返回当前日(01~31): String getDay2() 7.返回指定格式的当前时间: String getDate(String format)[YYYY-MM-DD,YY-MM,YY年MM月,YY/YYYY] 8.计算某天是星期几: whatDayIsSpecifyDate(String) 9.计算两日期间相差天数: signDaysBetweenTowDate(String nowDate, String beforeDate) 10.获得当前时间(年月日时分秒): getCurrentDateTime 11.根据日期获取星座: String date2Constellation(String strDate) YYYY-MM-DD 12.根据日期获取生肖: String date2Zodica(String strDate) YYYY-MM-DD 13.根据日期获取年龄: int getAge(String strbirthDay) YYYY-MM-DD 二)文件路径工具类[FilePathUtil] 1.根据某个文件名字,查找该文件在本工程下的物理位置 : String getFilePath(String fNames) 三)数组工具类[ArrayUtil] 1.交换数组中两元素: int[] swap(int[] ints, int x, int y)

Java实现简单的绘图软件

项目效果图: 项目源代码: import java.awt.*; import java.awt.event.*; import java.awt.geom.Ellipse2D; import java.awt.geom.Line2D; import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; /* author: 蒋冰*/ public class ImageDraw { private int typeFlag = 1; private int endFlag = 1; private int strokeTemp = 1; private Color color = Color.black;

private BasicStroke stroke = new BasicStroke(); private float pre_x = 0; private float pre_y = 0; private float start_x = 0; private float start_y = 0; private float start_X = 0; private float start_Y = 0; private float end_x = 0; private float end_y = 0; private float width = 0; private float height = 0; private final int AREA_WIDTH = 700; private final int AREA_HEIGHT = 400; private Line2D.Float line; private Rectangle2D.Float rect; private Ellipse2D.Float ellipse; private File imageFile; BufferedImage image = new BufferedImage(AREA_WIDTH , AREA_HEIGHT , BufferedImage.TYPE_INT_RGB); Graphics2D g2 = (Graphics2D) image.getGraphics(); private JFrame frame = new JFrame("简单手绘程序"); private DrawPanel drawArea = new DrawPanel(); JButton buttonShowColor = new JButton(""); public void init(){ g2.fillRect(0 , 0 ,AREA_WIDTH , AREA_HEIGHT); g2.setColor(Color.black); drawArea.setPreferredSize(new Dimension(AREA_WIDTH , AREA_HEIGHT)); drawArea.addMouseMotionListener(new MouseMotionAdapter() { public void mouseDragged(MouseEvent e) { do_mouseDragged(e); } }); drawArea.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e1){ do_mousePressed(e1);

六个最实用的Java开发工具推荐

六个最实用的Java开发工具推荐 IT行业每一年都会公布一份编程语言排行榜名单,虽然每年不同,但Java 语言的排名却一直靠前,深受世界各地工程师的喜爱,主要由于Java语言具有功能强大和简单易用两个特征。企业对合格的Java开发人员求贤若渴, 在各大主流招聘平台上, Java相关职位数量一直名列前茅。 很多人选择了Java大数据开发进行学习,但是要想成为一名出色的Java 开发工程师,就要学会应用各种开发工具,那么Java开发工程师都会使用哪些工具呢? Java开发者对于开发工具都有很大程度上的选择自由。但在这些数量庞大的开发工具中,仅有少数工具能在种类繁多的开发工具中脱颖而出。【Eclipse】 Eclipse 将他的工作流分成了三个部分:Workbench, Workspace,perspective。Workbench的作用就是相当于开发环境中的起点。而Workspace 将项目、文件和配置设置整合在目录下。Perspectives则是基于Workspace的环境在Workbench中有效定义工具、视图、设置。尽管初学者会觉得Eclipse 跟Netbeans和IntelliJ IDEA相比之下操作起来更加有难度,但是Eclipse的灵活性还是受到大量开发者的青睐。 【Gradle】 Gradle是一个建立在Apache Maven 和 Apache Ant 上的自动化构建工具。尽管他不是最受欢迎的自动化构建工具(Maven以64%的市场占有率稳居第一),但是它正在快速的被更多的开发者所接受。不得不提的是,他还是Android开发的默认构建工具。 【Javadoc】 Javadoc是一款由甲骨文出品的用于程序的开发文档的工具。它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,通过

JAVA实验报告 简单绘图程序

实验三绘制图形 一、实验目的 学会JButton的使用,能进行JButton的基本操作,能使用JButton构造一个图形界面框架通过实验熟悉swing图形用户界面程序设计熟悉java中的事件处理模型,每个事件动作代表的意义进一步提高编程能力,学会独立思考,学会上网查找资料决问题。 二、实验内容 设计一个程序,该程序能够绘制基本的图形(包括圆形、矩形、直线等);要求有一个简单易操作的用户界面(包括菜单、按钮等组件)。编写的程序要求能够实现保存和读取的功能。 三、实验代码 Main.java import ; import ; import ; import import import import winpaint.WinToolBar; import winpaint.windowsPaint; public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub JPanel paintWin = new windowsPaint("画图"); paintWin.setBounds(0, 30, 1000, 1000); paintWin.setLayout(null); paintWin.setVisible(true); JToolBar tool = new WinToolBar((windowsPaint)paintWin); tool.setBounds(0, 0, 1000, 30); tool.setVisible(true); JFrame frame = new JFrame();

Java画图板程序设计报告

西安科技大学Java语言课程设计报告 ¥

题目:画图板应用程序开发 & 班级: 学号: 姓名: 2010年 12 月 目录 1 设计题目及具体要求 (3) · 2 总体设计 (6) 3 详细设计与实现 (4) 4 系统测试 (11) 5 设计小结 (31) 参考文献 $

: 1、设计题目及具体要求 题目需求 ? 1. 设计题目:小画图板的开发。 2. 重点分析 本软件的重难点为主窗体的设计、菜单栏和工具栏的设计、事件响应的处理、画图的基本功能的实现。 3. 实现功能

1.新建一个空白图形文件:用于绘制新的图形。 2.打开或保存一个图形文件,便于对图形文件的管理。 3.绘制一些基本的图形组件:直线,矩形,实心矩形,椭圆,实心椭圆,圆,实心圆,圆角矩形,实心圆角矩形等。 4.用鼠标在绘图板上单击拖动进行随笔花。 5.` 6.橡皮擦:可以将已绘制的图形擦掉。 7.添加文字:可以在绘图区域内添加文字。 8.选择文字的字体:通过一个下拉式的选择条,可以选中所需要的字体。本程序中包括:宋体,隶书,华文彩云,仿宋-GB2312,华文行楷,Times New Roman,Serif,Monospaced,SonsSerif,Garamond。当然,在下面的程序分析中可以看到,由于设置了字体选择数组,使得可以随意添加系统支持的任何字体。大大方便和简化了程序设计。 9.选择文字的字体风格:通过两个复选框按钮,可以选择需要的字体风格,包括:粗体,斜体,用同时选中两者,只选择其中一种或两者都不选中3种选择方式。10.设置画笔的颜色:可以选择当前绘制图形的画笔颜色,让图形更加丰富多彩,生动活泼。 10. 设置画笔的粗细:该选项在作用于基本图形组件和文字时,它的效果是不同的。 当作用于绘制图形组建时,它的作用是改变画笔绘制线条的粗细;当作用于文字时,它的作用是改变文字的大小。 ;

JAVA POI通用工具类

JAVA POI数据导入导出工具类 1.Exception处理 public class ExcelException extends Exception { public ExcelException() { // TODO Auto-generated constructor stub } public ExcelException(String message) { super(message); // TODO Auto-generated constructor stub } public ExcelException(Throwable cause) { super(cause); // TODO Auto-generated constructor stub } public ExcelException(String message, Throwable cause) { super(message, cause); // TODO Auto-generated constructor stub } } 2.POI核心处理 /** * @author : SUNZK-QQ:1131341075 * @Date : 2018-8-23 下午9:13:21 * @Comments : 导入导出Excel工具类 * @Version : 1.0.0 */ public class ExcelUtil { /** * @MethodName : listToExcel * @Description : 导出Excel(可以导出到本地文件系统,也可以导出到浏览器,可自定义工作表大小) * @param list 数据源 * @param fieldMap 类的英文属性和Excel中的中文列名的对应关系

Java代码常用工具类整理归纳

Java代码常用工具类整理归纳 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java代码中使用最频繁及最通用的Java工具类。欢迎大家阅读! 一、https://www.360docs.net/doc/dc7064191.html,mons.io.IOUtils closeQuietly:关闭一个IO流、socket、或者or且不抛出异常,通常放在finally块 toString:转换IO流、 Uri、 byte[]为String copy:IO流数据复制,从输入流写到输出流中,最大支持2GB toByteArray:从输入流、URI获取byte[] write:把字节. 字符等写入输出流 toInputStream:把字符转换为输入流 readLines:从输入流中读取多行数据,返回List copyLarge:同copy,支持2GB以上数据的复制 lineIterator:从输入流返回一个迭代器,根据参数要求读取的数据量,全部读取,如果数据不够,则失败。 二、https://www.360docs.net/doc/dc7064191.html,mons.io.FileUtils Directory:删除文件夹 readFileToString:以字符形式读取文件内容 Queitly:删除文件或文件夹且不会抛出异常 copyFile:复制文件 writeStringToFile:把字符写到目标文件,如果文件不存在,则创建 forceMkdir:强制创建文件夹,如果该文件夹父级目录不存在,则创建父级 write:把字符写到指定文件中 listFiles:列举某个目录下的文件(根据过滤器) copyDirectory:复制文件夹 forceDelete:强制删除文件 三、https://www.360docs.net/doc/dc7064191.html,ng.StringUtils isBlank:字符串是否为空(trim后判断) isEmpty:字符串是否为空(不trim并判断) equals:字符串是否相等 join:合并数组为单一字符串,可传分隔符 split:分割字符串 EMPTY:返回空字符串 trimToNull:trim后为空字符串则转换为null replace:替换字符串

java绘图坐标体系

java绘图坐标体系 像素:计算机屏幕上显示的内容都是屏幕上的每一个像素组成。例如:计算机显示器的分辨率是800*600,表示计算机屏幕上的每一行由800个点组成,共有600行,整个计算机屏幕共有480000个像素。像素是一个密度单位,而厘米是长度单位,两者无法比较。 绘图的原理Part1 Component类提供了两个和绘图相关最重要的方法: ①:paint(Graphics g):绘制组件的外观 注意点:当组件第一次在屏幕显示的时候,程序会自动的调用paint()方法来绘制组件。 在以下情况会自动调用paint()方法: 一:窗口最小化,再最大化。 二:窗口的大小发生变化(注意是大小变化,而不是移动窗口) 三:repaint函数被调用 ②:repaint():刷新组件的外观 注意点:起到动感的作用。 Graphics 类: Graphics 可以理解就是画笔,为我们提供各种绘制图形的方法: ①:画直线drawLine(int x1,int y1,int x2,int y2); ②:画矩形边框drawRect(intx,inty,intwidth,int height); ③:画椭圆边框drawOval(intx,inty,intwidth,int height); ④:填充矩形fillRect(intx,inty,intwidth,int height);

⑤:填充椭圆 fillOval(intx,inty,intwidth,int height); ⑥:画图片 drawImage(Image img,intx,int y,.....); ⑦:画字符串drawString(String str,intx,int y); ⑧:设置画笔的字体setFont(Font font); ⑨:设置画笔的颜色setColor(Color c); 举例如下: /** * java绘图原理 * 不能再JFrame上画图,但是可以在JPanel上画图 */ package day0218; importjava.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Image; import java.awt.Panel; import java.awt.Toolkit; importjavax.swing.JFrame; import javax.swing.JPanel; public class Demo18_1 extends JFrame { MyPanelmp = null; public Demo18_1() { mp=new MyPanel(); this.add(mp);

JAVAPOI通用工具类

JA V A POI数据导入导出工具类 1.Exception处理 public class ExcelException extends Exception { public ExcelException() { // TODO Auto-generated constructor stub } public ExcelException(String message) { super(message); // TODO Auto-generated constructor stub } public ExcelException(Throwable cause) { super(cause); // TODO Auto-generated constructor stub } public ExcelException(String message, Throwable cause) { super(message, cause); // TODO Auto-generated constructor stub } } 2.POI核心处理 /** * author : SUNZK-QQ:1131341075 * Date : 2018-8-23 下午9:13:21 * Comments : 导入导出Excel工具类 * Version : 1.0.0 */ public class ExcelUtil { /** * MethodName : listToExcel * Description : 导出Excel(可以导出到本地文件系统,也可以导出到浏览器,可自定义工作表大小) * param list 数据源 * param fieldMap 类的英文属性和Excel中的中文列名的对应关系

实验一Java常用工具类编程

实验一Java常用工具类编程 §1.1实验指导 1、String类使用 String 类表示字符串。在Java 程序中所有的字符串常量,如"abc",都被实现为这个类的实例。 1)、构造函数 String s1="java"; String s2=new String("java"); 2)、比较函数 ①==比较引用是否相同 if(s1==s2) //返回false ②equals():比较串内容是否相同 if(s1.equals(s2))//返回true ③compareTo():比较内容,返回数字 https://www.360docs.net/doc/dc7064191.html,pareTo(s2) 如果s1>s2 则返回>0 如果s1=s2 则返回0 如果s1

课程设计-JAVA-画板-模拟画图工具

目录 1 课题介绍 (1) 1.1 课程设计目的 (1) 1.2 课程设计要求 (1) 1.3 课程设计主要知识点 (1) 2 总体设计 (2) 2.1 画板界面设计图 (2) 2.2 模块概述 (2) 2.2.1 文件操作 (2) 2.2.2 图形绘制 (2) 3 详细设计与实现 (4) 3.1 框架类DrawGraphic (4) 3.1.1菜单 (4) 3.1.2工具栏 (6) 3.1.3画图区域 (7) 3.2 基本图形类 (10) 3.2.1 父类Drawings (10) 3.2.2 子类(只列出部分) (10) 4 设计中的难点 (12) 4.1多态与动态绑定 (12) 4.2重绘的理解 (12) 4.3文件的新建、打开和保存 (12) 5 运行测试 (13) 6 总结 (15) 参考文献 (16)

模拟画图 1 1 课题介绍 1.1 课程设计目的 课程设计题目:模拟画图 要求设计一个程序,模拟Windows中的画图程序,实现图形图像的编辑,修改,保存等功能。 1.2 课程设计要求 (1)程序中必须包括“新建”、“打开”、“保存”,用户可以选择,实现对文件的操作; (2)画图板的绘图按钮用来画出不同的图形,包括实心图形和空心的图形; (3)可以对线条的颜色和粗细进行设置,也可以对填充图形的颜色进行设置和更改。 1.3 课程设计主要知识点 (1)框架类DrawGraphic继承了Swing类库中JFrame,并且用到JButton,JLabel,JPanel,等Swing类库中的组件进行窗体设计; (2)选择一个文件,用到组件JFileChooser; (3)选择颜色,用到组件JColorChooser; (4)弹出标准对话框,用到组件JOptionPane; (5)在单击绘图按钮时,所触发的动作通过方法addActionListener和ActionListener接口的actionPerformed方法共同实现; (6)MouseAdapter和MouseMotionAdapter用来完成鼠标各种事件的相应操作,包括单击、移动、拖拽等; (7)在界面设计的时候结合BorderLayout和GridLayout两种布局格式; (8)在添加监听器的时候有用到内部匿名类和内部类,所以要熟悉它们的构造方法和使用方法,从中体会持有对方引用的这一设计思想。 (9)在图形绘制的时候,用到Graphics类,其揭示了所有图形系统几乎都采用的一种机制,就是如何在窗口上画出一些图形来,当窗口构造出来的时候里面有一支画笔,即Graphics的一个对象,当窗口调用paint方法的时候,系统会把画笔自动传递给它,拿到画笔,重写paint方法就实现了在窗口上绘制基本图形。

相关文档
最新文档