AWT之—画图
package edu.ch4;
import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.util.Calendar;
import java.util.Date;
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.IntervalCategoryDataset;
import org.jfree.data.gantt.Task;
import org.jfree.data.gantt.TaskSeries;
import org.jfree.data.gantt.TaskSeriesCollection;
import org.jfree.data.general.DefaultPieDataset;
public class Test extends ApplicationWindow {
/** *//**
* Create the application window
*/
public Test() {
super(null);
addToolBar(SWT.FLAT | SWT.WRAP);
addMenuBar();
addStatusLine();
}
/** *//**
* Create contents of the application window
*
* @param parent
*/
@Override
protected Control createContents(Composite parent) {
TabFolder tf = new TabFolder(parent, SWT.TOP);
TabItem ti = new TabItem(tf, SWT.NULL);
ti.setText("分类");
Composite composite = new Composite(tf, SWT.NO_BACKGROUND
| SWT.EMBEDDED);
Frame frame = SWT_AWT.new_Frame(composite);
frame.add(new ChartPanel(createBarChart()));
ti.setControl(composite);
TabItem ti1 = new TabItem(tf, SWT.NULL);
ti1.setText("项目组");
Composite composite1 = new Composite(tf, SWT.NO_BACKGROUND
| SWT.EMBEDDED);
Frame frame1 = SWT_AWT.new_Frame(composite1);
frame1.add(new ChartPanel(createGanttChart()));
ti1.setControl(composite1);
tf.setSelection(0);
return tf;
}
/** *//**
* 方法名称: 内容摘要:
*
* @return
* @return JFreeChart
* @throws
*/
private JFreeChart createGanttChart() {
String title = "Gantt测试";
IntervalCategoryDataset dataset = createSampleDataset();
JFreeChart jfc = ChartFactory.createGanttChart(title, "项目各阶段详细实施计划",
"项目周期", dataset, false, false, false);
return jfc;
}
/** *//**
* 方法名称:
* 内容摘要:创建gantt内容
*
* @return
* @return IntervalCategoryDataset
* @throws
*/
private IntervalCategoryDataset createSampleDataset() {
TaskSeries s1 = new TaskSeries("日程表");
Task t1 = new Task("项目立项", date(1, Calendar.APRIL, 2001), date(5,
Calendar.APRIL, 2001));
t1.setPercentComplete(1.00);
Task t2 = new Task("项目立项讨论", date(6, Calendar.APRIL, 2001), date(19,
Calendar.APRIL, 2001));
s1.add(t1);
s1.add(t2);
final Task t3 = new Task(
"需求分析",
date(10, Calendar.APRIL, 2001), date(5, Calendar.MAY, 2001)
);
final Task st31 = new Task(
"需求1",
date(10, Calendar.APRIL, 2001), date(25, Calendar.APRIL, 2001)
);
st31.setPercentComplete(1.0);
final Task st32 = new Task(
"需求2",
date(1, Calendar.MAY, 2001), date(5, Calendar.MAY, 2001)
);
st32.setPercentComplete(1.0);
t3.addSubtask(st31);
t3.addSubtask(st32);
s1.add(t3);
final TaskSeriesCollection collection = new TaskSeriesCollection();
collection.add(s1);
return collection;
}
/** *//** */
/** *//**
* Utility method for creating <code>Date</code> objects.
*
* @param day
* 日
* @param month
* 月
* @param year
* 年
*
* @return a date.
*/
private static Date date(final int day, final int month, final int year) {
final Calendar calendar = Calendar.getInstance();
calendar.set(year, month, day);
final Date result = calendar.getTime();
return result;
}
/** *//**
* 方法名称: 内容摘要:饼图测试
*
* @return
* @return JFreeChart
* @throws
*/
private JFreeChart createBarChart() {
String title = "空调2002年市场占有率";
DefaultPieDataset piedata = new DefaultPieDataset();
piedata.setValue("联想", 27.3);
piedata.setValue("长城", 12.2);
piedata.setValue("海尔", 5.5);
piedata.setValue("美的", 17.1);
piedata.setValue("松下", 9.0);
piedata.setValue("科龙", 19.0);
JFreeChart chart = ChartFactory.createPieChart(title, piedata, true,
true, true);
chart.setTitle(new TextTitle(title, new Font("隶书", Font.ITALIC, 15)));
chart.addSubtitle(new TextTitle("2002财年分析", new Font("隶书", Font.ITALIC,
12)));
chart.setBackgroundPaint(Color.white);
PiePlot pie = (PiePlot) chart.getPlot();
pie.setBackgroundPaint(Color.white);
pie.setBackgroundAlpha(0.6f);
pie.setForegroundAlpha(0.90f);
return chart;
}
/** *//**
* Launch the application
*
* @param args
*/
public static void main(String args[]) {
try {
Test window = new Test();
window.setBlockOnOpen(true);
window.open();
Display.getCurrent().dispose();
} catch (Exception e) {
e.printStackTrace();
}
}
/** *//**
* Configure the shell
*
* @param newShell
*/
@Override
protected void configureShell(Shell newShell) {
super.configureShell(newShell);
newShell.setText("New Application");
}
/** *//**
* Return the initial size of the window
*/
@Override
protected Point getInitialSize() {
return new Point(500, 375);
}
}
AWT之—画图的更多相关文章
- Java -- AWT 画图,图像处理
1. AWT画图 Graphics类 提供绘制简单图形的方法 更新图片时用到 repaint , update , 程序不应该主动调用paint和update, 这两个方法都应该是由AWT系统负责 ...
- learning java AWT 画图
import javax.swing.*; import java.awt.*; import java.util.Random; public class SimpleDraw { private ...
- java画图之曲线拖动
目标:在窗体上按下鼠标按键.然后拖动鼠标,在按下和拖动之间绘制曲线 事件机制 事件源对象:窗体 事件监听方法:addMouseListener(MouseListener l);addMouseMot ...
- java画图之初体验
1.实现画图程序所需的API类 JFrame JButton ActionListener 动作事件接口 ActionEvent ...
- Java画图程序设计
本文讲述一个画图板应用程序的设计,屏幕抓图如下: 『IShape』 这是所有图形类(此后称作模型类)都应该实现接口,外部的控制类,比如画图板类就通过这个接口跟模型类“交流”.名字开头的I表示它是一个接 ...
- java画图程序_图片用字母画出来_源码发布_版本二
在上一个版本:java画图程序_图片用字母画出来_源码发布 基础上,增加了图片同比例缩放,使得大像素图片可以很好地显示画在Notepad++中. 项目结构: 运行效果1: 原图:http://imag ...
- java画图程序_图片用字母画出来_源码发布
在之前写了一篇blog:java画图程序_图片用字母画出来 主要是把一些调试的截图发布出来,现在程序调试我认为可以了(当然,你如果还想调试的话,也可以下载源码自己调试). 就把源码发布出来. 项目结构 ...
- Java中的AWT进阶
围棋 package ch11; /** * Created by Jiqing on 2016/12/4. */ import java.awt.*; import javax.swing.*; i ...
- Java SE (2)之 Graphics 画图工具
Graphics 绘图类: 提供两个方法.Paint (绘图,被系统自动调用) repaint(重绘) Paint 调用原理(1.窗口最大化,再最小化 窗口的大小发生变化 Repaint函数被调 ...
随机推荐
- Linux中脚本的使用方法
Linux中脚本的使用方法 一.前言 关于Linux中的脚本的用法,一直没有时间去好好地总结,正好今天下雨,就好好的整理一下思路吧,其实精通了一门语言,比如C语言,学习其他语言需要的成本是非常少的,同 ...
- [EffectiveC++]item12:copy all parts of an object
在小书C++中,4.2.2 派生类的构造函数和析构函数的构造规则(103页) 在定义派生类对象时,构造函数执行顺序如下: 基类的构造函数 对象成员的构造函数 派生类的构造函数.
- 017.1 stringBuffer
内容:String Buffer/String Builder方法 + 两个简单练习是缓冲区,最后都会转成字符串处理,有局限性###########方法添加元素: .append()插入元素: ...
- JavaScript --- Map集合结构详解
Map 对象保存键值对.任何值(对象或者原始值) 都可以作为一个键或一个值. 语法 new Map([iterable]) 参数 iterable Iterable 可以是一个数组或者其他 itera ...
- BZOJ 1008 越狱 组合数学
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1008 题目大意: 监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗 ...
- cogs [HZOI 2015]有标号的二分图计数
题目分析 n个点的二分染色图计数 很显然的一个式子 \[ \sum_{i=0}^n\binom{n}{i}2^{i(n-i)} \] 很容易把\(2^{i(n-i)}\)拆成卷积形式,前面讲过,不再赘 ...
- LANMP常用配置.md
httpd 配置 MPM prefork StartServers # 服务器启动时建立的子进程数量. MinSpareServers # 空闲子进程的最小数量:如果当前空闲子进程数少于MinSpar ...
- ethereumjs-vm/examples/run-transactions-simple
https://github.com/ethereumjs/ethereumjs-vm/tree/master/examples/run-transactions-simple prerequisit ...
- MFC文档应用程序CToolBar:设置两个工具条并列停靠到同一条边上 转
转自:http://blog.csdn.net/panshiqu/article/details/9369891# 将多个工具条同时并列停靠在某窗口的某一条边上.对于这种停靠方法,利用上述工具条控制函 ...
- 离线服务器下docker的部署与应用
一分钟内形成docker的模糊概念 网上很多文章避免将docker与虚拟机混为一谈,但对于初学者来说,完全可以将docker当做一种虚拟机技术,只需要牢牢记住一点最重要的区别:docker依赖于物理机 ...