import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.util.*;
public class elastic {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame f = new DrawFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.show();
}
}
class DrawFrame extends JFrame
{
public DrawFrame()
{
setTitle( "画图程序 ");
setSize(WIDTH,HEIGHT);
Container contentPane = getContentPane();
DrawPanel p = new DrawPanel();
contentPane.add(p);
contentPane.add(p.statusPanel,BorderLayout.SOUTH);
}
public static final int WIDTH = 600;
public static final int HEIGHT = 600;
}
class DrawPanel extends JPanel implements MouseListener,MouseMotionListener
{
public DrawPanel()
{
lines = new ArrayList();
colors = new ArrayList();
setBackground(Color.WHITE);
this.addMouseMotionListener(this);
this.addMouseListener(this);
statusPanel= new JPanel();
//statusPanel.setSize(40, 200);
//statusPanel.setBackground(Color.RED);
statusPanel.setLayout(new BorderLayout());
statusLabel = new JLabel( " " );
statusPanel.add(statusLabel,BorderLayout.CENTER);
}
public void setDrawColor()
{
setForeground(focucolor);
}
public void mouseDragged(MouseEvent e)
{
x2 = e.getX();
y2 = e.getY();
statusLabel.setText( " 横坐标为: "+x2+ "纵坐标为: "+y2);
repaint();
}
public void mouseMoved(MouseEvent e)
{
}
/////下面五个方法是实现MouseListener的接口的方法
public void mousePressed(MouseEvent e)
{
x1 = e.getX();
y1 = e.getY();
x2 = -1;
repaint();
}
public void mouseReleased(MouseEvent e)
{
colors.add(getForeground());
lines.add(new Line2D.Double(x1, y1, e.getX(), e.getY()));
x2 = -1;
statusLabel.setText( " ");
repaint();
}
public void mouseEntered(MouseEvent e)
{
}
public void mouseExited(MouseEvent e)
{
}
public void mouseClicked(MouseEvent e)
{
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
g2.setColor(this.getForeground());
int count = lines.size();
for(int i = 0;i <count;i++)
{
Line2D.Double line = (Line2D.Double)lines.get(i);
g2.setColor((Color)colors.get(i));
g2.draw(line);
}
if (x2 != -1)
g2.drawLine(x1, y1, x2, y2);
}
//用来清除图像
public void clearCanvas()
{
lines.clear();
colors.clear();
x2 = -1;
repaint();
}
private ArrayList lines;
private ArrayList colors;
private int x1,y1,x2,y2;
private Color focucolor;
private JLabel statusLabel;
JPanel statusPanel;
}
发表评论
-
MyEclipse6.5配置Tomcat7.0
2014-11-26 10:26 850window>>Preferences>&g ... -
JSP 转换 mht java 代码
2013-11-22 10:31 1063import java.io.BufferedInputS ... -
JAVA实现FTP上传下载
2013-09-06 10:31 899import java.io.DataIn ... -
java的KVM在arm上的应用
2013-03-21 09:26 968http://wenku.baidu.com/view/162 ... -
JAVA在ARM的应用
2013-03-21 09:18 5771J2ME CDC(Connected Device Confi ... -
JAVA桌面截图
2013-03-20 15:07 809Robot robot = new Robo ... -
引用他人代码去掉前面行数
2013-03-19 11:01 896import java.io.*; public clas ... -
JAVA调用DLL文件
2012-11-25 16:02 10041 创建 TestDll.java public cla ... -
用java的反射清空对象属性的值
2012-10-25 16:09 8025@SuppressWarnings("unche ... -
用反射清空对象属性的的值
2012-10-25 16:06 0@SuppressWarnings("unche ... -
JMS实例,包括点对点和主题订阅
2012-07-11 10:58 3020三个Java文件: JMSTest.java ... -
Jmail收发邮件
2012-07-11 09:32 1122Jmail 接收邮件: import javax.mai ... -
MyEclipse6.0反编译插件jadclipse安装
2012-05-16 11:54 1063插件下载 反编译工具jad,地址:http://www.var ... -
MyEclipse6.0反编译插件jadclipse安装
2012-05-16 11:51 0插件下载 反编译工具ja ... -
把第一个对象中不为空的数据复制到第二个对象中
2012-04-09 10:31 1076/*** *实现两个实例对象之间的对拷, * ... -
velocity导出word模板
2012-02-29 13:11 1532public class VelocityExample { ... -
Jacob操作word
2012-02-29 13:02 1373package test; import com.jacob ... -
EJB3学习资料
2011-03-31 17:28 875http://wenku.baidu.com/view/6e2 ... -
Java和C#相互调用
2011-03-31 17:23 897http://developer.51cto.com/art/ ... -
java操作注册表方法
2011-02-23 16:57 860http://www.iteye.com/topic/8229 ...
相关推荐
在本文中,我们将深入探讨如何使用Microsoft Foundation Classes (MFC) 创建一个简单的画图程序,该程序允许用户通过鼠标操作绘制直线、矩形和椭圆,并支持设置绘图形状的特性,如线宽、线色和图形填充色。...
这个"vb编写的简单画图程序"是一个基于VB的图形用户界面(GUI)应用,用于基本的绘图操作。它包含了一系列的模块(Module)和窗体(Form)文件,每个文件都有特定的功能。 1. **Module1.bas**:这是VB中的一个模块...
【源码09 C# 简易画图程序】是一个使用C#编程语言实现的简单图形绘制应用程序。这个程序允许用户在屏幕上绘制各种形状,可能是直线、曲线、圆形、矩形等基本图形,为初学者提供了一个了解图形用户界面(GUI)编程和...
在这个“C# 简单画图程序”中,我们将会探讨如何使用C#实现一个基本的画图功能,允许用户在程序窗口上通过鼠标绘制线条。 首先,这个程序的核心是利用Windows Forms框架来创建用户界面,这是一个在.NET Framework中...
在本文中,我们将深入探讨如何使用C#编程语言创建一个简单的画图程序。这个程序能够实现绘制直线、曲线等基本图形的功能,对于初学者来说是一个很好的学习实例。我们将从以下几个方面来详细介绍这个“C#简单画图程序...
从给定的文件信息来看,这是一份关于使用C++编程语言开发简单画图程序的课程设计报告。报告详细地介绍了程序的基本功能、设计思路、软件设计步骤以及界面设计等内容。接下来,我们将深入分析这份报告中提及的关键...
【标题】:“C#简易画图程序源码” 在编程领域,C#是一种广泛应用的面向对象的编程语言,尤其在Windows应用开发中占有重要地位。本项目提供的“C#简易画图程序源码”旨在帮助初学者理解如何利用C#进行图形用户界面...
在本项目中,我们探讨的是一个基于C#编程语言实现的简单画图程序。这个程序允许用户在界面上绘制线段、圆形以及矩形,从而为初学者提供了一个直观了解图形用户界面(GUI)编程和C#绘图功能的实例。 C#是微软开发的...
《基于MFC的简易画图程序详解》 MFC(Microsoft Foundation Classes)是微软提供的一套面向对象的C++库,用于简化Windows应用程序的开发。在这个“用MFC做的简单画图程序”中,我们主要探讨了如何利用MFC框架构建一...
使用C/C++编写的简易画图程序 功能:①绘制线,矩形,椭圆,文本 ②保存图元到文件,并能够从文件加载图像 ③能够通过鼠标点击选中图形,并进行属性的修改,修改的内容可包括: 修改图元的大小,位置,画笔画刷属性...
《MFC实现的简单画图程序》 在计算机科学领域,图形用户界面(GUI)的开发是不可或缺的一部分,而Microsoft Foundation Classes(MFC)库为Windows应用程序开发提供了一种高效且方便的方式。本文将深入探讨如何使用...
在本项目中,"vc++写的简单画图程序"是一个基于Microsoft Visual C++(简称VC++)开发的图形用户界面应用程序,它允许用户进行基本的绘图操作。这个程序利用了MFC(Microsoft Foundation Classes)库,这是一个由...
Java Applet是Java技术早期的一种应用形式,主要用于在Web浏览器中执行小应用程序,例如我们的“简易画图程序”。这个程序提供了基本的图形绘制功能,帮助用户理解和实践Java事件处理机制。下面将详细介绍Java ...
本项目是一个基于MFC(Microsoft Foundation Classes)框架开发的简易画图程序。MFC是微软提供的一种C++类库,它封装了Windows API,使得开发者能够更容易地创建Windows应用程序。这个程序允许用户在窗口内进行基本...
"一个简易画图程序源码"指的是这个压缩包中包含了一个使用C#编程语言编写的简单图形绘制应用程序的原始代码。这样的程序通常允许用户在界面上自由绘制线条、形状,并可能具备基本的颜色填充、撤销/重做等操作。 ...
【标题】:“简单画图程序(C++)” 在编程领域,C++是一种广泛应用的面向对象的编程语言,尤其在系统软件、应用软件、游戏开发和高性能计算等领域有着广泛的应用。这个“简单画图程序”是用C++编写的,旨在提供...
在C#编程环境中,开发一个简单的画图程序可以利用Windows Forms或WPF框架来实现。这个程序使用静态方法,使得用户可以直接通过预设的选择而非实时的鼠标操作进行绘图,同时还具备自选颜色和基本的文件操作功能,如...
【标题】"简单画图程序(个人制作)"揭示了这是一个使用C#编程语言开发的初级图形绘制应用程序。作为个人项目,它展示了作者在C#编程领域的初阶技能,同时也表达了作者希望寻求同行的指导和合作的愿望。 【描述】中...