`
菜刀兔兔兔
  • 浏览: 16749 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

非常简单的画板

 
阅读更多

 
             好久以前就让做个画板了,一直没好好做,这几天学了文件的保存之后,突然就想把画板做一下。
 
             画板,无非就是画线画圆画各种图形。当然,我的画板很简陋,只能画线画圆画矩形。

 

 我在写这个画板的时候遇到了几个比较重大的问题

 

               1、监听器之间如果有互相影响的参数,怎么传?

 

                  我发现我解决不了这个问题。后来,我想到强哥当时讲文件的时候,曾经写过一个既能画圆又能画直线的代码。他直接把监听器写在类里面(没有新建一个类),我就试了试这种方法,发现就不用传这个令人头疼的参数了。

 

                   但是我还是不知道,如果分开写成两个类要怎么解决这个问题。

 

                    2、怎么给按钮加监听器

 

                   按钮我是将图片放在数组里,循环添加的。然后我把监听器也写在了循环里。问题当然不是监听器怎么加,而是电脑怎么知道我按的是哪个按钮。。。
 
                    开始的时候我以为。。e.getActionCommand.equals(图片名称)就行了。但是按了半天的按钮都没反应。(太对不起熊哥了。。这个熊哥好像讲过)。后来我输出e.getActionCommand发现什么东西也没有、、、然后、、给每个按钮set了一个ActionCommand就好了。。

 

                  3、保存
 
                    其实保存的时候没有太大的问题。。写着写着。。他就能保存了~~~好开心酷

     

                   对了。我本来想在打开和保存的监听器里写一个这样的东西。

                  就是一点打开,就能再弹出一个窗体,然后我们可以输入打开的路径,然后用getText()获取里面的字符串,将字符串传给FileInputStream 的对象。后来发现他会报错。。估计是程序是顺序执行的原因。。我木有深究、、就放弃了这个想法、、、

 
                   4、代码很乱

 

                   暂时还没解决、、而且好多地方没注释

 

               5 、 补充:刚在截图的时候突然发现还没有实现退出这个功能、、、

 

下面是代码、、有点多。貌似有500多行的样子、

package Paint;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
//画板类
public class ppanel extends JPanel{

	//窗体
	JFrame jf = new JFrame();
	//画布
	Graphics g;
	//工具标签 初始工具 直线
	int D1=1;
	//颜色 初始颜色黑色
	Color color=Color.BLACK;
	//坐标
	int x1,x2,y1,y2;
	//存储图形的队列
	List<Shape> lineList = new ArrayList<Shape>();
	
	//监听器
	ActionListener ac = new ActionListener() {
		
		public void actionPerformed(ActionEvent e) {
			if(e.getActionCommand().equals("打开")){
//				JFrame open = new JFrame("打开");
//				open.setLayout(new FlowLayout());
//				JLabel jl1 = new JLabel("请输入地址:");
//				open.add(jl1);
//				open.setSize(200, 150);
//				open.setLocationRelativeTo(null);
//				
//				JTextField j1 = new JTextField(10);
//				j1.setText("G:/mypic.dat");
//				open.add(j1,BorderLayout.CENTER);
//				open.setVisible(true);
//				
//				String st = jl1.getText();
				
				try {
				FileInputStream fis = new FileInputStream("G:/mypic.dat");
				DataInputStream dis = new DataInputStream(fis);
				int c = dis.readInt();
				
				for(int i =0;i<c;i++){
					
					int d = dis.readInt();
					if(d==1){
						
						int xx1=dis.readInt();
						int xx2=dis.readInt();
						int yy1=dis.readInt();
						
						int yy2=dis.readInt();
						int co = dis.readInt();
						g.setColor(new Color(co));
						g.drawLine(xx1, yy1, xx2, yy2);
						
					}else if(d==2){
						int xx1=dis.readInt();
						int xx2=dis.readInt();
						int yy1=dis.readInt();
						int yy2=dis.readInt();
						int co = dis.readInt();
						g.setColor(new Color(co));
						g.drawRect(Math.min(xx1, xx2), Math.min(yy1, yy2), Math.abs(xx2-xx1), Math.abs(yy1-yy2));		
					}else if(d==3){
						int xx1=dis.readInt();
						int xx2=dis.readInt();
						int yy1=dis.readInt();
						int yy2=dis.readInt();
						int co = dis.readInt();
						g.setColor(new Color(co));
						g.fillRect(Math.min(xx1, xx2), Math.min(yy1, yy2), Math.abs(xx2-xx1), Math.abs(yy1-yy2));
					}else if(d==4){
						int xx1=dis.readInt();
						int xx2=dis.readInt();
						int yy1=dis.readInt();
						int yy2=dis.readInt();
						int co = dis.readInt();
						g.setColor(new Color(co));
						g.drawOval(Math.min(xx1, xx2), Math.min(yy1, yy2), Math.abs(xx2-xx1), Math.abs(yy1-yy2));}
					else if(d==5){
						int xx1=dis.readInt();
						int xx2=dis.readInt();
						int yy1=dis.readInt();
						int yy2=dis.readInt();
						int co = dis.readInt();
						g.setColor(new Color(co));
						g.fillOval(Math.min(xx1, xx2), Math.min(yy1, yy2), Math.abs(xx2-xx1), Math.abs(yy1-yy2));}
					else if(d==6){
						int xx1=dis.readInt();
						int xx2=dis.readInt();
						int yy1=dis.readInt();
						int yy2=dis.readInt();
						int co = dis.readInt();
						g.setColor(new Color(co));
						g.drawOval(Math.min(xx1, xx2), Math.min(yy1, yy2), Math.abs(xx2-xx1), Math.abs(xx2-xx1));
				}else if(d==7){
					int xx1=dis.readInt();
					int xx2=dis.readInt();
					int yy1=dis.readInt();
					int yy2=dis.readInt();
					int co = dis.readInt();
					g.setColor(new Color(co));
					g.fillOval(Math.min(xx1, xx2), Math.min(yy1, yy2), Math.abs(xx2-xx1), Math.abs(xx2-xx1));
			}else if(d==8){
				int xx1=dis.readInt();
				int xx2=dis.readInt();
				int yy1=dis.readInt();
				int yy2=dis.readInt();
				int co = dis.readInt();
				g.setColor(new Color(co));
				g.fillRect(xx1, yy1, 10, 10);
		}
				
				}
				
				fis.close();
				dis.close();
				} catch (Exception e2) {
					e2.printStackTrace();
				}
				
				
				System.out.println("打开!");
				
			}
			if(e.getActionCommand().equals("保存")){
				
				try {
					FileOutputStream fos = new FileOutputStream("G:/mypic.dat");
					DataOutputStream dos = new DataOutputStream(fos);
					
					dos.writeInt(lineList.size());
					
					for(int i =0;i<lineList.size();i++){
						Shape s = lineList.get(i);
						dos.writeInt(s.type);
						dos.writeInt(s.x1);
						dos.writeInt(s.x2);
						dos.writeInt(s.y1);
						dos.writeInt(s.y2);
						dos.writeInt(s.color.getRGB());

					}
					
					fos.close();
					dos.close();
				} catch (Exception e2) {
					e2.printStackTrace();
				}
				
				System.out.println("保存!");
				
			}
			if(e.getActionCommand().equals("退出")){
				
				System.out.println("退出!");
				
			}
			
			if(e.getActionCommand().equals("画笔")){
				D1 = 0;
				System.out.println("画笔!");
			}
			if(e.getActionCommand().equals("直线")){
				D1 = 1;
				System.out.println("直线!");
			}
			if(e.getActionCommand().equals("矩形")){
				D1 = 2;
				System.out.println("矩形!");
			}
			if(e.getActionCommand().equals("矩形(实)")){
				D1 = 3;
				System.out.println("矩形(实)!");
			}
			if(e.getActionCommand().equals("椭圆")){
				D1 = 4;
				System.out.println("椭圆!");
			}
			if(e.getActionCommand().equals("椭圆(实)")){
				D1 = 5;
				System.out.println("椭圆(实)!");
			}
			if(e.getActionCommand().equals("圆")){
				D1 = 6;
				System.out.println("圆!");
			}
			if(e.getActionCommand().equals("圆(实)")){
				D1 = 7;
				System.out.println("圆(实)!");
			}
			if(e.getActionCommand().equals("橡皮")){
				D1 = 8;
				System.out.println("橡皮!");
			}
			if(e.getActionCommand().equals("添加文字")){
				D1 = 9;
				System.out.println("添加文字!");
			}
			
			if(e.getActionCommand().equals("关于")){
				
				JOptionPane.showMessageDialog(null,"    作者:周一帆 \nQQ:121727544");
			}
			
		}};
			
		
	
	
	public static void main(String[] agrs){
		
		ppanel f = new ppanel();
		f.draw();
		
	}
	
	public void draw(){
		
		//设置属性
		jf.setTitle("画图板");
		jf.setSize(700, 600);
		jf.setLocationRelativeTo(null);
		jf.setDefaultCloseOperation(3);
		
		//菜单
		menu();
		//工具
		tool();
		//画板
		
		jf.add(this,BorderLayout.CENTER);

		//设置可见
		jf.setVisible(true); 
		this.g = this.getGraphics();

		
		//监听器
		this.addMouseListener(new MouseListener() {
			
			@Override
			public void mouseReleased(MouseEvent e) {
				x2=e.getX();
				y2=e.getY();
				System.out.println(D1);
				if(D1==1){
					g.setColor(color);
					g.drawLine(x1, y1, x2, y2);	
					Shape s = new Shape();
					s.x1=x1;s.x2=x2;s.y1=y1;s.y2=y2;
					s.color=color;
					s.type=1;
					lineList.add(s);
				}
				if(D1==2){
					g.setColor(color);
					g.drawRect(Math.min(x1, x2), Math.min(y1, y2), Math.abs(x2-x1), Math.abs(y1-y2));
					Shape s = new Shape();
					s.x1=x1;s.x2=x2;s.y1=y1;s.y2=y2;
					s.color=color;
					s.type=2;
					lineList.add(s);
				}
				if(D1==3){
					g.setColor(color);
					g.fillRect(Math.min(x1, x2), Math.min(y1, y2), Math.abs(x2-x1), Math.abs(y1-y2));
					Shape s = new Shape();
					s.x1=x1;s.x2=x2;s.y1=y1;s.y2=y2;
					s.color=color;
					s.type=3;
					lineList.add(s);
				}
				if(D1==4){
					g.setColor(color);
					g.drawOval(Math.min(x1, x2), Math.min(y1, y2), Math.abs(x2-x1), Math.abs(y1-y2));
					Shape s = new Shape();
					s.x1=x1;s.x2=x2;s.y1=y1;s.y2=y2;
					s.color=color;
					s.type=4;
					lineList.add(s);
				}
				if(D1==5){
					g.setColor(color);
					g.fillOval(Math.min(x1, x2), Math.min(y1, y2), Math.abs(x2-x1), Math.abs(y1-y2));
					Shape s = new Shape();
					s.x1=x1;s.x2=x2;s.y1=y1;s.y2=y2;
					s.color=color;
					s.type=5;
					lineList.add(s);
				}
				if(D1==6){
					g.setColor(color);
					g.drawOval(Math.min(x1, x2), Math.min(y1, y2), Math.abs(x2-x1), Math.abs(x2-x1));
					Shape s = new Shape();
					s.x1=x1;s.x2=x2;s.y1=y1;s.y2=y2;
					s.color=color;
					s.type=6;
					lineList.add(s);
				}
				if(D1==7){
					g.setColor(color);
					g.fillOval(Math.min(x1, x2), Math.min(y1, y2), Math.abs(x2-x1), Math.abs(x2-x1));
				
					Shape s = new Shape();
					s.x1=x1;s.x2=x2;s.y1=y1;s.y2=y2;
					s.color=color;
					s.type=7;
					lineList.add(s);}
				if(D1==8){
					g.setColor(Color.WHITE);
					g.fillRect(x1, y1, 10, 10);
					Shape s = new Shape();
					s.x1=x1;s.x2=x2;s.y1=y1;s.y2=y2;
					s.color=color;
					s.type=8;
					lineList.add(s);
				}
				if(D1==9){

					System.out.print("添加文字!");
				}
				
			}
			
			@Override
			public void mousePressed(MouseEvent e) {
				x1=e.getX();
				y1=e.getY();
				
			}
			
			@Override
			public void mouseExited(MouseEvent e) {}
			
			@Override
			public void mouseEntered(MouseEvent e) {}
			
			@Override
			public void mouseClicked(MouseEvent e) {}
		});
		
		
	}
	//画布重绘
	public void paint(Graphics g){		
		super.paint(g);
		this.setBackground(Color.WHITE);
	}
	
	
	
	//设置菜单栏
	public void menu(){
		//菜单
		JMenuBar jmb = new JMenuBar();
		//菜单项
		JMenu jm1 = new JMenu("文件");
		JMenu jm2 = new JMenu("工具");
		JMenu jm3 = new JMenu("帮助");
		//菜单子项
		JMenuItem jmi11 = new JMenuItem("打开");
		JMenuItem jmi12 = new JMenuItem("保存");
		JMenuItem jmi13 = new JMenuItem("退出");
		JMenuItem jmi20 = new JMenuItem("画笔");
		JMenuItem jmi21 = new JMenuItem("直线");
		JMenuItem jmi22 = new JMenuItem("矩形");
		JMenuItem jmi23 = new JMenuItem("矩形(实)");
		JMenuItem jmi24 = new JMenuItem("椭圆");
		JMenuItem jmi25 = new JMenuItem("椭圆(实)");
		JMenuItem jmi26 = new JMenuItem("圆");
		JMenuItem jmi27 = new JMenuItem("圆(实)");
		JMenuItem jmi28 = new JMenuItem("橡皮");
		JMenuItem jmi29 = new JMenuItem("添加文字");
		JMenuItem jmi31 = new JMenuItem("关于");
		
		jm1.add(jmi11);jm1.add(jmi12);jm1.add(jmi13);
		jm2.add(jmi20);jm2.add(jmi21);jm2.add(jmi22);jm2.add(jmi23);jm2.add(jmi24);
		jm2.add(jmi25);jm2.add(jmi26);jm2.add(jmi27);jm2.add(jmi28);jm2.add(jmi29);
		jm3.add(jmi31);
		
		jmb.add(jm1);
		jmb.add(jm2);
		jmb.add(jm3);
		jf.setJMenuBar(jmb);
		
		jmi11.addActionListener(ac);
		jmi12.addActionListener(ac);
		jmi13.addActionListener(ac);
		
		jmi20.addActionListener(ac);
		jmi21.addActionListener(ac);
		jmi22.addActionListener(ac);
		jmi23.addActionListener(ac);
		jmi24.addActionListener(ac);
		jmi25.addActionListener(ac);
		jmi26.addActionListener(ac);
		jmi27.addActionListener(ac);
		jmi28.addActionListener(ac);

		jmi31.addActionListener(ac);
		
		

	}
	

	//工具
	public void tool(){
		
		JPanel jp = new JPanel();
		jp.setLayout(new FlowLayout(FlowLayout.CENTER,20,10));
		
		JLabel jl = new JLabel("工 具");
		jl.setFont(new Font("楷体",Font.BOLD,25));
		jp.add(jl);
		
		
		String[] array ={"画图/画笔.jpg","画图/直线.jpg","画图/矩形.jpg","画图/矩形1.jpg","画图/椭圆.jpg","画图/椭圆1.jpg",
				"画图/圆.jpg","画图/圆1.jpg","画图/橡皮.jpg","画图/文字.jpg"};
		
		
		for(int i =0;i<array.length;i++){
		
			ImageIcon ima = new ImageIcon(array[i]);
			JButton jb = new JButton(ima);
			jb.setPreferredSize(new Dimension(24,24));
			jp.add(jb);
			if(i==0){jb.setActionCommand("画笔");}
			if(i==1){jb.setActionCommand("直线");}
			if(i==2){jb.setActionCommand("矩形");}
			if(i==3){jb.setActionCommand("矩形1");}
			if(i==4){jb.setActionCommand("椭圆");}
			if(i==5){jb.setActionCommand("椭圆1");}
			if(i==6){jb.setActionCommand("圆");}
			if(i==7){jb.setActionCommand("圆1");}
			if(i==8){jb.setActionCommand("橡皮");}
			if(i==9){jb.setActionCommand("文字");}
			//监听器
			jb.addActionListener(new ActionListener() {
				
				@Override
				public void actionPerformed(ActionEvent e) {
					if(e.getActionCommand().equals("画笔")){
						D1 = 0;
						System.out.println("画笔!");
					}
					if(e.getActionCommand().equals("直线")){
						D1 = 1;
						System.out.println("直线!");
					}
					if(e.getActionCommand().equals("矩形")){
						D1 = 2;
						System.out.println("矩形!");
					}
					if(e.getActionCommand().equals("矩形1")){
						D1 = 3;
						System.out.println("矩形1!");
					}
					if(e.getActionCommand().equals("椭圆")){
						D1 = 4;
						System.out.println("椭圆!");
					}
					if(e.getActionCommand().equals("椭圆1")){
						D1 = 5;
						System.out.println("椭圆1!");
					}
					if(e.getActionCommand().equals("圆")){
						D1 = 6;
						System.out.println("圆!");
					}
					if(e.getActionCommand().equals("圆1")){
						D1 = 7;
						System.out.println("圆1!");
					}
					if(e.getActionCommand().equals("橡皮")){
						D1 = 8;
						System.out.println("橡皮!");
					}
					if(e.getActionCommand().equals("文字")){
						D1 = 9;
						System.out.println("文字!");
					}
					
				}
			});

		}
		
		JLabel jl1 = new JLabel("颜 色");
		jl1.setFont(new Font("楷体",Font.BOLD,25));
		jp.add(jl1);
		
		JPanel jp1 = new JPanel();
		jp1.setPreferredSize(new Dimension(40,100));
		String[] array1 ={"颜色/black.jpg","颜色/white.jpg","颜色/blue.jpg","颜色/red.jpg",
				"颜色/green.jpg","颜色/yellow.jpg","颜色/b.jpg","颜色/p.jpg",};
		
		for(int i = 0;i<8;i++){
			
			ImageIcon ima = new ImageIcon(array1[i]);
			JButton jb = new JButton(ima);
			jb.setPreferredSize(new Dimension(12,12));
			jp1.add(jb);
			if (i==0) {jb.setActionCommand("黑色");}
			if (i==1) {jb.setActionCommand("白色");}
			if (i==2) {jb.setActionCommand("蓝色");}
			if (i==3) {jb.setActionCommand("红色");}
			if (i==4) {jb.setActionCommand("绿色");}
			if (i==5) {jb.setActionCommand("黄色");}
			if (i==6) {jb.setActionCommand("灰色");}
			if (i==7) {jb.setActionCommand("粉色");}
			
			jb.addActionListener(new ActionListener() {
			
				public void actionPerformed(ActionEvent e) {
					if(e.getActionCommand().equals("黑色")){color=Color.BLACK;}
					if(e.getActionCommand().equals("白色")){color=Color.WHITE;}
					if(e.getActionCommand().equals("蓝色")){color=Color.BLUE;}
					if(e.getActionCommand().equals("红色")){color=Color.RED;}
					if(e.getActionCommand().equals("绿色")){color=Color.GREEN;}
					if(e.getActionCommand().equals("黄色")){color=Color.YELLOW;}
					if(e.getActionCommand().equals("灰色")){color=Color.GRAY;}
					if(e.getActionCommand().equals("粉色")){color=Color.PINK;}
				}
			});	
		}
		
		jp.add(jp1);
	
		jp.setPreferredSize(new Dimension(100,0));
		jf.add(jp,BorderLayout.EAST);
	}
	}

 

主界面:

 

 

 

工具栏:

 

 

 

 

文件栏

 

 

其实帮助里面、、还有一个关于作者、、尴尬

  • 大小: 34.6 KB
  • 大小: 12.7 KB
  • 大小: 5.5 KB
  • 大小: 5.5 KB
分享到:
评论

相关推荐

    简单画板(源代码)

    简单画板(源代码)有有橡皮筋功能,文本输入功能,文件输入保存功能,调色功能,取色功能等等 用MFC实现

    java swing简单画板

    在这个"java swing简单画板"项目中,开发者利用Swing构建了一个基础的绘图应用,用户可以在此画板上执行常见的绘图操作,如绘制直线、圆、矩形、曲线,并使用橡皮擦进行擦除。下面我们将详细讨论这些知识点。 **1. ...

    MFC简单画板

    【MFC简单画板】是基于C++编程语言和Microsoft Foundation Classes (MFC)库实现的一个基础绘图应用。MFC是微软为Windows操作系统提供的一个类库,它封装了Windows API,使得开发者能够更容易地使用面向对象的方式...

    java简单画板程序

    Java简单画板程序是一个基于Java编程语言开发的图形用户界面应用,主要目的是提供一个基础的绘图环境。这个程序允许用户在屏幕上绘制各种图形和线条,实现简单的绘画功能。通过这个程序,我们可以学习到以下几个Java...

    C++程序开发基于Qt实现的简单绘画板程序源码+项目说明.zip

    C++程序开发基于Qt实现的简单绘画板程序源码+项目说明.zip 基于Qt实现的简单绘画板程序。 ## 功能介绍 - 绘制点、直线、椭圆、矩形等基本几何图形; - 存储、读取绘图文件; - 撤回、重做等功能; - 调节线宽、线条...

    简单的画画板

    "简单的画画板"是一款设计简洁、易于操作的绘画工具,旨在提供类似QQ画板的绘画体验。这款应用或软件允许用户在屏幕上自由创作,挥洒艺术灵感,是初学者和爱好者进行数字绘画的理想选择。其核心功能可能包括颜色选择...

    java简单画板

    【Java简单画板】是一款基于Java编程语言开发的轻量级画图软件,它提供了基本的绘图功能,包括绘制直线、矩形和椭圆,适用于进行简单的图形创作和涂鸦。这款工具的设计理念是易用性和实用性,使得用户无需复杂的操作...

    VC++的非常简单的画板程序工程及源码

    标题 "VC++的非常简单的画板程序工程及源码" 提供了我们即将讨论的核心内容:一个基于VC++编写的简易画板程序及其源代码。这个项目可能是一个基础的教学示例,适合初学者理解图形用户界面(GUI)编程和基本的绘图...

    c#简单画板程序

    下面将详细阐述这个"简单画板程序"中的关键知识点。 首先,我们需要使用C#的Windows Forms库来创建图形用户界面。Windows Forms提供了丰富的控件和组件,用于构建桌面应用程序。在这个画板程序中,主要用到的是`...

    VB制作的简单画板程序

    【VB制作的简单画板程序】是一个利用Visual Basic(VB)开发的基础图形用户界面应用程序,它为用户提供了一个基本的绘图平台,用户可以在此平台上进行简单的绘画操作。这个程序的核心功能是画笔颜色的可变性,使得...

    简单画板中蕴含的“哲理”

    标题中的“简单画板中蕴含的‘哲理’”指的是在编程领域中,一个看似简单的画板应用可能隐藏着深入的编程思想和技术实现。这样的项目通常用于教学或实践,帮助初学者理解图形用户界面(GUI)开发、事件处理、坐标...

    VC++课程设计_windows简单画板

    在本“VC++课程设计_windows简单画板”项目中,我们主要探讨了如何利用Microsoft的Visual C++(VC++)编程环境开发一个基础的Windows应用程序,即一个简单的画板工具。这个工具允许用户进行基本的绘图操作,如绘制...

    C# GDI简单画板的实现

    这就是使用C#和GDI+创建一个简单画板的基本流程。虽然这个示例很简单,但它展示了GDI+的主要功能,并且可以根据需求进行扩展,比如添加更多绘图工具、颜色选择器、撤销/重做功能等。对于C#初学者来说,这是一个很好...

    java画板 比较简单的画板

    一个简单的Java画板可能包含以下关键部分: ```java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class SimplePaintBoard extends JFrame { private DrawingPanel panel; public...

    用windows编写的简单画板

    【标题】"用windows编写的简单画板"是一款基于Windows平台的初级图形用户界面应用程序,旨在提供基础的绘画功能。这个程序可能由初学者或学习Windows编程的开发者编写,用于熟悉Windows API调用和事件处理机制。 ...

    mfc实现简单绘画板

    【标题】"mfc实现简单绘画板"是一个基于MFC(Microsoft Foundation Classes)框架的编程项目,旨在创建一个简易的图形用户界面,用户可以在该界面上进行基本的绘图操作。MFC是微软为Windows应用程序开发提供的一套...

    图形画板简单demo

    《图形画板简单demo》 在信息技术领域,图形画板是一种常见的交互式应用程序,它允许用户在屏幕上绘制各种图形,包括线条、矩形、椭圆等。本项目名为"图形画板简单demo",旨在提供一个基础的绘图平台,让用户能够...

    Java实现简单的画板

    在本文中,我们将深入探讨如何使用Java编程语言来实现一个简单的画板应用程序。这个程序允许用户在图形用户界面上绘制各种基本形状,如线条、矩形、圆形等,从而提供了一个基本的绘画环境。 首先,我们需要引入Java...

    画板.zip画板简单的例子

    总的来说,这个项目是一个使用 Egret 框架实现的简单画板应用,它展示了如何利用 Web 技术创建具有基本绘画功能的交互式应用,并提供了保存作品的能力。这对于初学者来说是一个很好的学习资源,可以帮助他们理解如何...

    简单画板程序C++ Builder

    ### C++ Builder简单画板程序知识点解析 #### 一、项目背景与概述 根据所提供的文件信息,本项目是使用C++ Builder开发的一款简单的画板应用程序。C++ Builder是一款由Embarcadero Technologies提供的快速应用开发...

Global site tag (gtag.js) - Google Analytics