- 浏览: 139789 次
- 性别:
- 来自: 重庆
最新评论
-
老梦a:
要是保存到数据库,是怎么做呢,数据流这块,不太懂。。(*^__ ...
使用flash摄像头拍照的简单实践 -
wolf521hf:
学习 最近正在看相关的文档 标记下
Spring安全权限管理(Spring Security) -
yue_hun1025:
怎么下载不了??????
java反编译工具jad下载 -
ry.china:
你把这个放到jdk的bin目录下就可以了
java反编译工具jad下载 -
幻樱释:
不知道能不能看懂哦。
javascript高级程序设计实例代码
/*
*只画直线,矩形,椭圆,只能向右下角画
*
*PainterPanel extends JPanel implements MouseListener
*addMouseListener(this);
*
*JToggleButton
*
*hxz*/
import java.awt.*;
import java.awt.event.*;
import java.awt.font.FontRenderContext;
import java.awt.font.TextLayout;
import java.awt.geom.AffineTransform;
import java.awt.geom.Line2D;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.awt.image.BufferedImageOp;
import java.awt.image.ConvolveOp;
import java.awt.image.Kernel;
import java.io.File;
import java.io.IOException;
import java.util.Map;
import java.util.Random;
import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.event.*;
class MyPainterPanel extends JPanel implements MouseListener{
Point[] point=new Point[2]; //记录鼠标拖动的起始点和终点
int max_width = 0;
int max_height = 0;
Map<String,Integer> girl_data;
Map<String,Integer> boy_data;
Color girl_color;
Color boy_color;
String title;
int title_height = 14;
int[] title_padding = {10,0,10,0};
public MyPainterPanel(){
super(); //调用父类构造函数
this.setBackground(Color.white); //设置背景颜色
point[0]=new Point(0,0); //初始化变量
point[1]=new Point(300,300);
addMouseListener(this); //增加鼠标事件
this.max_width = 600;
this.max_height = 500;
}
public MyPainterPanel(int width, int height){
super(); //调用父类构造函数
this.setBackground(Color.white); //设置背景颜色
point[0]=new Point(0,0); //初始化变量
point[1]=new Point(300,300);
addMouseListener(this); //增加鼠标事件
this.max_width = width;
this.max_height = height;
System.out.println(width+"="+height);
}
public void mouseReleased(MouseEvent e){ //鼠标释放事件
point[1]=new Point(e.getX(),e.getY()); //设置终点位置
//repaint(); //重绘屏幕
}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mouseClicked(MouseEvent e){}
public void mousePressed(MouseEvent e){ //鼠标按下时事件
point[0]=new Point(e.getX(),e.getY()); //设置起始点位置
}
public void paint(Graphics g){
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
this.max_width = this.getWidth();
this.max_height = this.getHeight();
//MyGraphicsData m = new MyGraphicsData((Graphics2D) g);
//m.truemode(0, 0, 600, 500, 10.0, 10.0, 590.0,490.0);
g2d.setFont(new Font("DialogInput", Font.BOLD, 12));
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
// g2d.drawLine(point[0].x,point[0].y,point[1].x,point[1].y); //绘线
// int width=point[1].x-point[0].x;
// int height=point[1].y-point[0].y;
// g2d.drawOval(point[0].x,point[0].y,width,height); //绘椭圆
// width=point[1].x-point[0].x;
// height=point[1].y-point[0].y;
// g2d.drawRect(point[0].x,point[0].y,width,height); //绘矩形
// g2d.drawLine(0,max_height-30,max_width,max_height-30);
// g2d.drawLine(0,0,max_width,max_height);
g2d.setColor (Color.GREEN);
Point p1 = new Point(0,max_height-30);
Point p2 = new Point(max_width,max_height-30);
g2d.drawLine(p1.x, p1.y, p2.x, p2.y);
//g2d.drawString("我靠", 150, 150);
g2d.setColor (Color.yellow);
//g2d.fillArc (5, 15, 50, 75, 25, 165);
//g2d.fill3DRect(250, 250, 100, 100, true);
// 设置渐进色
GradientPaint gp = new GradientPaint(180, 190, Color.yellow, 220, 210,
Color.red, true);
g2d.setPaint(gp);
g2d.setStroke(new BasicStroke(2.0f)); //设定粗细
Line2D.Float line = new Line2D.Float(20, 300, 200, 300); //直线
g2d.draw(line);
// 显示文字
FontRenderContext frc = g2d.getFontRenderContext();
TextLayout tl = new TextLayout("测试文字", new Font("Modern", Font.BOLD
+ Font.ITALIC, 20), frc);
//线形
Shape sha = tl.getOutline(AffineTransform.getTranslateInstance(50, 180));
g2d.setColor(Color.blue);//颜色
g2d.setStroke(new BasicStroke(2.0f));//粗细
g2d.draw(sha);
g2d.setColor(Color.white);
g2d.fill(sha);
g2d.setColor(Color.red);
//旋转
AffineTransform oldTransform = g2d.getTransform();
//旋转
AffineTransform tr = new AffineTransform();
//使用一个translation变换为要旋转的文本设置空间
tr.setToTranslation(100.0 , 100.0);
g2d.transform(tr);
//创建一个旋转变换来旋转文本
tr.setToRotation(Math.PI / 2.0);
//在90度角的位置渲染四个字符串"Java"的复件
for ( int i = 0; i < 4; i++){
g2d.drawString("Java", 0.0f , 0.0f);
g2d.transform(tr);
}
g2d.transform(AffineTransform.getRotateInstance(Math.PI * (0.50f)));
g2d.draw(sha);
g2d.drawString("12505555555555", 0 , 0);
g2d.setTransform(oldTransform);
float[] elements = { 0.0f, -1.0f, 0.0f, -1.0f, 4.f, -1.0f, 0.0f, -1.0f,
0.0f };
try{
//加载图片
Image img = Toolkit.getDefaultToolkit().getImage("");
int w = img.getWidth(this);
int h = img.getHeight(this);
BufferedImage bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
//创建Graphics2D对象
Graphics2D big = bi.createGraphics();
big.drawImage(img, 0, 0, this);
//阴影处理
BufferedImageOp biop = null;
AffineTransform at = new AffineTransform();
BufferedImage bimg = new BufferedImage(img.getWidth(this), img.getHeight(this), BufferedImage.TYPE_INT_RGB);
Kernel kernel = new Kernel(3, 3, elements);
ConvolveOp cop = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP, null);
cop.filter(bi, bimg);
biop = new AffineTransformOp(at, AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
//显示图像
g2d.drawImage(bimg, biop, 0, 0);
}catch(Exception e){
System.out.println(e);
}
//add_backgroud_image(g2d);
this.draw_coord(g2d);
System.out.println(this.getWidth()+" "+this.getHeight());
//g.draw3DRect(50, 50, max_width, 5, false);
g.setColor(Color.BLUE);
g.fill3DRect(50, 50, max_width, 5, false);
}
public void draw_coord(Graphics2D g){
g.setColor(Color.BLACK);
//下面坐标
g.drawLine(0,max_height-30,max_width,max_height-30);
for(int i=0; i<=30; i++){
Stroke dash = new BasicStroke(1,BasicStroke.CAP_BUTT,BasicStroke.JOIN_ROUND,
3.5f,new float[]{5,3},0f);
g.setStroke(dash);
if(i*(max_width/30)<(max_width/2-20) || i*(max_width/30)>(max_width/2+20))
g.drawLine(i*(max_width/30),0, i*(max_width/30), max_height-25);
Stroke dash2 = new BasicStroke(1,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);
g.setStroke(dash2);
AffineTransform oldTransform = g.getTransform();
//旋转
AffineTransform tr = new AffineTransform();
Font font = g.getFont();
Dimension d = font.createGlyphVector(g.getFontRenderContext(),""+(i*(max_width/30))).getVisualBounds().getBounds().getSize();
//使用一个translation变换为要旋转的文本设置空间
tr.setToTranslation(i*(max_width/30) , max_height-d.getWidth());
g.transform(tr);
g.transform(AffineTransform.getRotateInstance(Math.PI * (0.50f)));
g.drawString(""+(i*(max_width/30)), 0, 0);
//g.drawString(""+(i*(max_width/30)), i*(max_width/30), max_height-g.getFont().getSize());
g.setTransform(oldTransform);
}
g.setColor(Color.BLACK);
g.setFont(new Font("Dialog", Font.PLAIN, 12));
//中间坐标
g.drawLine(max_width/2-20, 0, max_width/2-20, max_height-30);
for(int i=0; i<10; i++){//中轴刻度
g.drawString(""+(i*10)+"-"+(i*10+10), max_width/2-20, i*(max_height-30)/10);
//绘制坐标虚线
//g.drawLine(0, i*(max_height-30)/10, max_width/2-20, i*(max_height-30)/10);
//g.drawLine(max_width/2+20, i*(max_height-30)/10, max_width, i*(max_height-30)/10);
g.setColor(Color.YELLOW);
int rand_left_x = new Random().nextInt(max_width/2-20);
g.fill3DRect(rand_left_x, i*(max_height-30)/10, max_width/2-20-rand_left_x, 20, true);
g.setColor(Color.GREEN);
GradientPaint gp = new GradientPaint(180,190,Color.GREEN,220,120,Color.YELLOW,true);
g.setPaint(gp);
g.fill3DRect(max_width/2+20, i*(max_height-30)/10, new Random().nextInt(max_width/2-20), 20, true);
g.setColor(Color.BLACK);
}
g.setColor(Color.BLACK);
g.drawLine(max_width/2+20, 0, max_width/2+20, max_height-30);
}
public void add_backgroud_image(Graphics2D g){
//设置为以透明方式绘制
AlphaComposite ac = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, (float).75);
g.setComposite(ac);
Image img = Toolkit.getDefaultToolkit().getImage("E:\\firefox\\后台模板\\admin-templates\\images\\login-wel.gif");
g.drawImage(img, 0, 0, this);
}
}
/*
*JToggleButton
*
*JToolBar
*
*hxz*/
public class MyPainterDemo extends JFrame{
JToggleButton[] button=new JToggleButton[3]; //按钮组
MyPainterPanel painter=new MyPainterPanel(); //绘图面板
public MyPainterDemo(){
super("Java画图程序"); //调用父类构造函数
String[] buttonName={"保存","重画","关闭"}; //按钮文字
DrawShapeListener buttonListener=new DrawShapeListener(); //按钮事件
JToolBar toolBar=new JToolBar(); //实例化工具栏
ButtonGroup buttonGroup=new ButtonGroup(); //实例化按钮组
for (int i=0;i<button.length;i++){
button[i]=new JToggleButton(buttonName[i]); //实例化按钮
button[i].addActionListener(buttonListener); //增加按钮事件处理
buttonGroup.add(button[i]); //增加按钮到按钮组
toolBar.add(button[i]); //增加按钮到工具栏
}
Container container=getContentPane(); //得到窗口容器
container.add(toolBar,BorderLayout.NORTH); //增加组件到容器上
//painter = new MyPainterPanel(container.getMaximumSize().width,container.getMaximumSize().height);
container.add(painter,BorderLayout.CENTER);
System.out.println(getContentPane().getBounds().height);
setSize(700,650); //设置窗口尺寸
//setResizable(false);
Dimension screensize=Toolkit.getDefaultToolkit().getScreenSize();
int splash_x=(int)((screensize.width-getWidth())/2);
int splash_y=(int)((screensize.height-getHeight())/2);
setBounds(splash_x,splash_y,getWidth(),getHeight());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序
setVisible(true); //设置窗口为可视
}
//内部类
class DrawShapeListener implements ActionListener{ //按钮事件处理
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button[0]) { // 判断来自于哪个按钮
Component c = painter;
BufferedImage bi = (BufferedImage) c.createImage(c.getWidth(),
c.getHeight());
c.paint(bi.getGraphics());
try {
File directory = new File(".");
javax.imageio.ImageIO.write(bi, "bmp", new File(directory
.getCanonicalPath()
+ "/gant.bmp"));
} catch (IOException e1) {
e1.printStackTrace();
}
}
if (e.getSource() == button[1]) { // 判断来自于哪个按钮
painter.repaint();
}
if (e.getSource() == button[2]) { // 判断来自于哪个按钮
System.exit(0);
}
}
}
public static void main(String[] args){
new MyPainterDemo();
}
}
// 使用抗混叠技术,即平滑形状和文本的粗超像素边缘
// g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
//
// int cx = getSize().width / 2;
// int cy = getSize().height / 2;
//
// //移动到画面中心
// g2.translate(cx,cy);
// //使画面旋转
// g2.rotate(theta * Math.PI / 180);
//
// //保留旧的剪裁形状
// Shape oldClip = g2.getClip();
// //创建一个椭圆形状
// Shape e = new Ellipse2D.Float(-cx, -cy, cx*2 ,cy*2);
// //设置剪裁形状为一个椭圆
// g2.clip(e);
// //画一个椭圆
// Shape c = new Ellipse2D.Float(-cx, -cy, cx*3/4 ,cy*2);
// g2.setPaint(new GradientPaint(40, 40, Color.blue, 60, 50, Color.white, true));
// g2.fill(c);
// //画一个椭圆
// g2.setPaint(Color.yellow);
// g2.fillOval(cx/4, 0, cx, cy);
// //设置剪裁形状为旧的剪裁形状
// g2.setClip(oldClip);
// //绘制文本
// g2.setFont(new Font("Times New Roman", Font.PLAIN, 64));
// g2.setPaint(new GradientPaint(-cx, 0, Color.red, cx, 0, Color.black, false));
// g2.drawString("Hello, 2D!", -cx*3/4, cy/4);
// //设置为以透明方式绘制
// AlphaComposite ac = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, (float).75);
// g2.setComposite(ac);
//计算字体的长度
// private Dimension getBounds(Graphics2D g2 , String s) {
// Font font = g2.getFont();
// return font.createGlyphVector(g2.getFontRenderContext(),s).getVisualBounds().getBounds().getSize();
//}
// Font f = new Font( "楷体_GB2312 ", Font.PLAIN, 14);
// TextLayout tl = new TextLayout( "文本 ", f, new FontRenderContext(null, false, false));
// int width = (int) tl.getBounds().getWidth();
// int height = (int) (tl.getAscent()+tl.getDescent());
//图片处理
// 读入图片
// File _file = new File(file1);
// Image src = javax.imageio.ImageIO.read(_file); //构造Image对象
// int width = src.getWidth(null); //得到图宽
// int height = src.getHeight(null); //得到图长
//
// //图片放缩
// BufferedImage tag = new BufferedImage(width / 2, height / 2,
// BufferedImage.TYPE_INT_RGB);
// tag.getGraphics().drawImage(src, 0, 0, width / 2, height / 2, null); //绘制缩小后的图
发表评论
-
数据库JDBC驱动下载大全
2017-03-26 14:14 22621.数据库驱动下载地址 Cache : http://w ... -
MINA粘包断包专题研究
2015-05-13 00:25 0一、前述: 近期做项目用到了MINA,其中遇到了一个 ... -
Mybatis版PropertyFilter实现
2014-07-03 23:50 1515<!--前段时间看到hibernate的Proper ... -
java字符串应用之表达式解析器
2013-12-26 13:33 5266一、表达式的组成 1、数字 2、运算符:+ - ... -
全文检索Lucene使用与优化
2012-03-22 13:09 988转自http://www.oecp.cn/hi/chengzh ... -
Spring 里JMS和DB的事务集成
2012-02-10 18:59 1717http://www.javaworld.com/jav ... -
Java实现在bmp图像文件中隐藏与导出信息
2011-08-21 00:20 1396BMP图像文件,即所谓的位图文件。在位图中,其表示方式是 ... -
Spring事务配置的五种方式
2011-06-10 20:07 1001前段时间对Spring的事务配置做了比较深入的研究,在此之间对 ... -
spring2.5 mvc common-validator 集成应用
2010-12-10 12:59 2907常常写客服端验证代码,写多了就感觉是否有啥东西可以简化处理的, ... -
调整 JVM 开关以提高性能
2010-12-04 16:29 1059http://blog.csdn.net/petehero/a ... -
CGlib简单介绍
2010-07-06 21:58 933转载:http://hacker0825.blog.163.c ... -
java开源论坛系统
2010-01-04 22:52 4162java开源论坛系统 ================ m ... -
纯jsp日历
2009-12-16 09:44 1170网上找了一大堆日历,感觉跟自己的想要的有点差别,索性自己修改了 ... -
tomcat6学习笔记( 包括和apache2的集成,集群,SSI,SSL,安全域,嵌入应用程序,访问控制平台和管理平台)
2009-12-15 11:27 2457一.访问tomcat的控制平台和管理平台 首先下载tom ... -
用p6spy来观察Java程序中执行的所有SQL语句
2009-11-17 15:30 2165本想把 p6spy 结合 SQL Pro ... -
有用的ext grid 例子
2009-11-06 14:22 4334有用的ext grid 例子 ... -
Spring安全权限管理(Spring Security)
2009-11-04 14:02 6457Spring Security以前叫做acegi,是后来才成为 ... -
spring事务传播属性与隔离级别
2009-10-20 15:22 2076一、Propagation (事务的传播属性) Pro ... -
一个用Spring AOP实现异常处理和记录程序执行时间的实例
2009-10-20 15:05 31605.11 一个用Sprin ... -
最新的jsp系统与discuz整合(含源码)
2009-10-13 13:44 22341>登录discuz后台:UCenter应用管理---- ...
相关推荐
为java3dAPI文档(英文版)为java3dAPI文档(英文版)
最新的java3d api手册,是我自己在官网下载后编译制作的,希望你们喜欢
8. **Interactivity**:Java 3D也支持用户交互,例如通过鼠标和键盘控制视角、选择对象或触发事件。这使得开发者可以创建交互式的3D应用。 学习Java 3D API,即使英文版,对计算机科学背景的人来说并不构成太大障碍...
4、在Java2Demo工程中,双击demo.html文档,如果一切正常,那么你会看Java大手的Applet小程序动画 目的:Java 2D编程是Java游戏编程的基础。使用Java 2D API编程写程序,可以简化多线程编程;代码看上去绝对比VC++的...
Java 3D API 是一种基于Java语言的高级图形渲染库,用于在三维空间中创建...通过这个Java 3D API帮助文档和教程,开发者将获得创建引人入胜的三维应用程序所需的知识和技巧,无论是入门还是进阶,都能找到对应的指导。
2. 使用绘图方法:通过Graphics2D对象调用各种方法来绘制基本图形,或者进行更复杂的图形操作。 3. 设置渲染属性:可以设置笔触(Stroke)、颜色、透明度、合成规则等属性,以获得所需的绘图效果。 4. 使用变换:...
书中涉及到的MediaAPI包括Java2DAPI、Java3DAPI、JavaSoundAPI、JMFAPI等,它们都是Java语言体系专为编写Java多媒体应用程序而开发的应用程序接口。本书包括的内容有:Java多媒体技术概述,Java二维图形图像处理技术...
2. **异步处理**:由于JavaScript的单线程特性,dapi.js可能包含了Promise或async/await的异步处理机制,以处理网络请求或其他耗时操作。 3. **错误处理**:良好的错误处理机制是任何API库的关键,dapi.js可能会...
通过阅读这两个API文档,开发者可以学习如何初始化和配置GEF编辑器,创建和操作EditParts,使用Draw2D进行图形绘制,以及如何结合RCP来构建一个完整的图形编辑应用。同时,文档还可能包含示例代码和常见问题解答,...
C语言头文件 DAPIC语言头文件 DAPC语言头文件 DAPIC语言头文件 DAPIC语言头文件 DAPIC语言头文件 DAPIC语言头文件 DAPIC语言头文件 DAPIC语言头文件 DAPIC语言头文件 DAPIC语言头文件 DAPIC语言头文件 DAPIC语言...
使用移动3D API进行高级游戏开发.ppt
很好的DAPI的使用教程,希望可以给大家以帮助啊!!!!!!
搞了一阵APE物理引擎,简单好用,就是有一定局限性。又掉过头弄BOX2D,比APE上手麻烦点,不过还可以,提供个box2d的中文教程 大家共勉哈 补充一下啊,有的朋友说是c++版的,确实,书是c++版本的,但是 ...
2. **Shape**: `b2Shape` 是所有几何形状的基类,包括`b2CircleShape`(圆形)、`b2PolygonShape`(多边形)和`b2EdgeShape`(边缘)。开发者可以利用这些形状来构建物体的轮廓,进行碰撞检测。 3. **Fixture**: `...
资源名称:HTML5 Canvas 2D API 规范 1.0 中文版资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
很不错的资源! Java Intensive 7 day Course JB1 1st day: Intro, Syntax, Semantics, ...JA2 7th day: Design Patterns II, Reviewing Design Patterns use in Java's API's, JFC architecture, 2DApi zip 3.7 MB
Java2DGameEngineDev是一个基于Java技术开发的2D游戏引擎...这将帮助他们理解和学习如何利用Java2DAPI来构建自己的2D游戏。通过学习这个项目,开发者不仅能掌握Java2D图形编程,还能了解游戏开发的基本架构和设计模式。
DAPI客户端 用于访问Dash DAPI端点的客户端库 该库允许通过Dash主节点上托管的分散API( )与Dash区块链和Dash平台进行基于HTTP的交互。 DAPI-Client使用默认种子节点或用户提供的种子节点提供自动服务器(主节点...
标题中的“dapi”可能指的是DNA的染色技术——DAPI(4',6-二脒基-2-苯基吲哚),这是一种常用的荧光染料,用于标记和可视化细胞核中的DNA。在生物学研究和医学实验中,DAPI被广泛使用,因为它能够强烈结合DNA并发出...