`
codeone
  • 浏览: 45533 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Canvas画直线程序

    博客分类:
  • java
 
阅读更多

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

/**
 * Date: 11-12-30
 * Time: 16:08:00
 */
public class DrawLine extends JFrame implements ActionListener {
	private class MyCanvas extends Canvas {
		private String s_color;

		public void setS_color(String s_color) {
			this.s_color = s_color;
		}
		int x1, x2, y1, y2;
		public MyCanvas() {
			addMouseListener(new MouseAdapter() {
				public void mousePressed(MouseEvent event) {
					x1 = event.getX();
					y1 = event.getY();
				}
				public void mouseReleased(MouseEvent event) {
					x2 = event.getX();
					y2 = event.getY();
					Graphics g = getGraphics() ;
					if("red".equals(s_color)){
						g.setColor(Color.RED);
					} else{
						g.setColor(Color.BLUE);
					}
					g.drawLine(x1,y1,x2,y2);
				}
			});
		}
	}
	JPanel p = new JPanel();
	JButton b1 = new JButton("red"){{
        addActionListener(DrawLine.this);
    }};
	JButton b2 = new JButton("blue"){{
        addActionListener(DrawLine.this);
    }};
	MyCanvas canvas = new MyCanvas();

	public void actionPerformed(ActionEvent e) {
		canvas.setS_color(e.getActionCommand());
	}

	public DrawLine() {
		setFrame();
		getP().add(b1);
		JPanel buttom = new JPanel();
		buttom.setLayout(new GridLayout(1, 2));
		buttom.add(b1);
		buttom.add(b2);
		getP().add(buttom, BorderLayout.SOUTH);
		getP().add(canvas, BorderLayout.CENTER);
	}

	private JPanel getP() {
		return p;
	}

	private void setFrame() {
		setLayout(new BorderLayout());
		getP().setLayout(new BorderLayout());
		add(getP());
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(300, 300);
		setVisible(true);
	}

	public static void main(String[] args) throws Exception {
		new DrawLine();
	}
}
 
分享到:
评论

相关推荐

    微信小程序canvas画布绘制矩形、椭(圆)、直线、文字

    微信小程序canvas画布绘制矩形、椭(圆)、直线、文字

    微信小程序canvas实现直线缩放

    微信小程序canvas实现直线缩放,包含小程序项目所有文件,在小程序开发工具可直接打开,也可单独查看whml、wxss、js文件查看实现细节。

    微信小程序canvas实现直线自由移动

    微信小程序canvas实现直线自由移动,包含小程序项目所有文件,在小程序开发工具可直接打开,也可单独查看whml、wxss、js文件查看实现细节。

    Java 通过Canvas实现绘图功能.rar

    可以画出直线、矩形、圆角矩形、三角形、文字等,把缓冲区图像的内容绘制到画布上,重载抽象类MIDlet的抽象方法startApp(),重载抽象类MIDlet的方法destroyApp(),Java Canvas绘图程序,新手必看代码。

    Canvas绘图程序_java_

    Canvas绘图程序Java源码,可以用来画直线、矩形、圆角矩形、三角形、文字等,把缓冲区图像的内容绘制到画布上

    Canvas绘图程序Java

    摘要:Java源码,图形操作,Canvas,绘图程序 Canvas绘图程序Java源码,可以用来画直线、矩形、圆角矩形、三角形、文字等,把缓冲区图像的内容绘制到画布上……

    PythontkinterCanvas画布完全攻略

    Canvas中绘制直线、矩形、椭圆等各种几何图形,也可绘制图片、文字、UI组件(如Button)等。Canvas 允许重新改变这些图形项(Tkinter将程序绘制的所有东西统称为item)的属性,比如改变其坐标、外观等。Canvas组件的...

    JAVA简单画板程序设计实验报告材料.doc

    JAVA期末画板实验报告 课程题目: 运用JAVA语言编写一个画板程序,这个画板要有画图,特殊图形绘制,颜色改变,画笔 大小改变等功能. 设计思想: 1. 进展界面设计 2. 进展算法实现 3. 运行调试 4. 总结问题 设计过程: A...

    wx-canvas-tool:canvas操作库(涉及微信小程序)

    产品特点直线/三角形/矩形/正方形/圆/文本/文本换行/文本间隔wx-是操作微信小程序画布简单的API 没有依赖关系建立这是一个单文件的js,约会时间可以通过canvasTools.js就可以了。 浏览器: < script src =' ./...

    JAVA简单画板程序的设计实验报告.doc

    JAVA期末画板实验报告 课程题目: 运用JAVA语言编写一个画板程序,这个画板要有画图,特殊图形绘制,颜色改变, 画笔大小改变等功能。 设计思想: 1. 进行界面设计 2. 进行算法实现 3. 运行调试 4. 总结问题 设计...

    计算机图形学 直线与圆

    本程序采用Java语言,实现直线的3种画法(DDA,终点画线,Bresenham)以及圆的3种画法(逼近法,终点画圆法,公式法),并且可以调节线型,线宽以及颜色。而且采用Canvas画板,实现双缓冲技术,即使移动窗口、改变...

    C# .Net WinForm 画图程序源码

    本来打算做一个QQ司诺克瞄准程序的, 就是在洞口和彩球心之间划一条线,便于白球找点。 但发现该绘图面板放在QQ司诺克界面上后,一直不停的闪动……所以没起到作用。...///点两次左键画一条直线 ///点右键清除线条

    Dali-Doodle:具有Canvas和位图处理功能的Android涂鸦应用程序

    大理彩盒 ... 形状-Eclipse,圆形,矩形,直线 自由手绘 随时更改油漆颜色 随时更改油漆尺寸 重做和撤消更改 用户注意:-此项目处于测试阶段,随时分享您的智慧。 自我注意:-//待办事项 选择并绘制图像

    实现在android上画图的项目

    private float refX; //手指移动时上一刻在X轴上的位置 ... //清空Path的任何直线和曲线,让它变成空,以便下次使用 break; } invalidate(); //这个方法请求View进行重绘,所以会调用onDraw方法

    一款非常好的WPF编程宝典2010 源代码

    4.5 使用Canvas面板进行 基于坐标的布局 89 4.5.1 Z顺序 90 4.5.2 lnkCanvas元素 91 4.6 布局示例 93 4.6.1 列设置 93 4.6.2 动态内容 94 4.6.3 组合式用户界面 96 4.7 结束语 97 第5章 内容 99 5.1 理解...

    Apress.Pro.WPF.in.C.Sharp.2008.2nd.Edition.Feb.2008

    4.5 使用Canvas面板进行 基于坐标的布局 89 4.5.1 Z顺序 90 4.5.2 lnkCanvas元素 91 4.6 布局示例 93 4.6.1 列设置 93 4.6.2 动态内容 94 4.6.3 组合式用户界面 96 4.7 结束语 97 第5章 内容 99 5.1 理解内容控件 ...

    WPF编程宝典 part1

    6.1.1 背景画刷和前景画刷 130 6.1.2 字体 132 6.1.3 鼠标光标 136 6.2 内容控件 137 6.2.1 Content属性 138 6.2.2 对齐内容 140 6.2.3 WPF内容原则 141 6.2.4 标签 142 6.2.5 按钮 142 6.2.6 工具提示 145 6.3 特殊...

    WPF编程宝典 part2

    6.1.1 背景画刷和前景画刷 130 6.1.2 字体 132 6.1.3 鼠标光标 136 6.2 内容控件 137 6.2.1 Content属性 138 6.2.2 对齐内容 140 6.2.3 WPF内容原则 141 6.2.4 标签 142 6.2.5 按钮 142 6.2.6 工具提示 145 6.3 特殊...

    AspJpeg动态服务器组件v2·0注册版

     画一条直线  Canvas.Ellipse(Left, Top, Right, Bottom)  画出一个椭圆  Canvas.Circle(X, Y, Radius)  画出一个圆  Canvas.Bar(Left, Top, Right, Bottom)  画出一个长方形,上面有代码介绍了  ...

Global site tag (gtag.js) - Google Analytics