`
师大黄飞
  • 浏览: 44335 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Java基础之画图板

阅读更多

 这是我刚开始学习Java的另一个实例,先上图。。

首先也是先从界面开始,第一就是主要面板,就是一个JFrame,前面的按钮是JRadioButton,然后还有一个

JComboBox下拉列表

public void UI() {
        //主界面
		jf.setTitle("黄飞自创画图板");//标题
		jf.setSize(500, 300);//大小
		jf.setLocation(400, 400);//初始位置
		jf.setLayout(new FlowLayout(FlowLayout.LEFT));//布局
		jf.setResizable(false);//是否可以改变大小
		jf.setDefaultCloseOperation(3);//点击关闭按钮退出程序
		JButton jb = new JButton("选颜色");
		//
		jc=new JComboBox<String>();//一个下拉列表
		//添加各种选项
		jc.addItem("6");
		jc.addItem("12");
		jc.addItem("24");
		//”直线“按钮
		JRadioButton jr1 = new JRadioButton("直线");
		jr1.setActionCommand("直线");
		//添加监听
		jr1.addActionListener(new ActionListener(){
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
			f=false;
			f2=false;
			}
			
		});
		//“圆”按钮
		JRadioButton jr2 = new JRadioButton("圆");
		jr2.setActionCommand("圆");
		jr2.addActionListener(new ActionListener(){//添加监听

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
			f=false;	
			f2=false;
			}
			
		});
		//“举行”按钮
		JRadioButton jr3 = new JRadioButton("矩形");
		jr3.setActionCommand("矩形");
		jr3.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
			f=false;
			f2=false;
			}
			
		});
		JRadioButton jr4 = new JRadioButton("铅笔");
		jr4.setActionCommand("铅笔");
		jr4.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				f=true;
				f2=false;
			}
		});
		JRadioButton jr5=new JRadioButton("笔刷");
		jr5.setActionCommand("笔刷");
		jr5.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				f=true;
				f2=false;
			}
			
		});
		JRadioButton jr6=new JRadioButton("橡皮");
		jr6.setActionCommand("橡皮");
		jr6.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				f=true;
				f2=true;
			}
			
		});
		//bg是一个buttonGroup对象,用来存放按钮
		bg.add(jr1);
		bg.add(jr2);
		bg.add(jr3);
		bg.add(jr4);
		bg.add(jr5);
	    bg.add(jr6);
	    //将按钮添加到窗体上去
		jf.add(jr1);
		jf.add(jr2);
		jf.add(jr3);
		jf.add(jr4);
		jf.add(jr5);
		jf.add(jr6);
		jf.add(jb);
		jf.add(new JLabel("尺寸"));
		jf.add(jc);

 其中对按钮的监听只是改变f的值,f后面会用到,来控制一些方法,然后,要说的的就是,用了一个ButtonGroup啦储存按钮,这样我就可以通过ButtonGroup里面的getSelection().getActionCommand()来得到目前是哪个按钮被按下了,这样才能在画图的监听方法中来具体实现画那种图

// 监听选颜色按钮
		jb.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				showColorSelecter();//显示颜色选择器
			}

		});

 

添加一个按钮监听来实现对颜色的选择

// 颜色选择函数
	private void showColorSelecter() {
		if(f2==false){
	color = JColorChooser.showDialog(null, "请选择颜色", Color.black);}
	}

 JColorChooser.showDialog(null, "请选择颜色", Color.black);实现下面的东东,并且返回您选择的颜色

以下方法可以实现在面板上对鼠标的监听
 jf.addMouseMotionListener(me);//添加鼠标监听,
  jf.addMouseListener(me);//添加鼠标监听

其中的me是一个MouseAdapter对象,他继承了很多鼠标监听的接口,具体查看API文档

具体实现的方法

private MouseAdapter me = 	new MouseAdapter() {//一个鼠标监听对象
	public void mousePressed(MouseEvent e) {//鼠标按下
			x1 = e.getX();
			y1 = e.getY();
		}

		public void mouseReleased(MouseEvent e) {//鼠标抬起
			x2 = e.getX();
			y2 = e.getY();
			g.setColor(color);
			// g.drawLine(x1,y1,x2,y2);
			Huatu();
		}

	    public void mouseDragged(MouseEvent e){//鼠标拖动
	    	if(f==true){
	    	x2 = e.getX();
			y2 = e.getY();
			g.setColor(color);
			Huatu();
			x1 = x2;
			y1 = y2;
			}
	    }
		
	};

 huatu方法

private void Huatu() {
		if (bg.getSelection().getActionCommand().equals("铅笔")) {
			g.drawLine(x1, y1, x2, y2);//画线
		}
		if (bg.getSelection().getActionCommand().equals("直线")) {
			g.drawLine(x1, y1, x2, y2);
		}
		if (bg.getSelection().getActionCommand().equals("矩形")) {
			//画矩形,参数为左上角坐标,长和宽
			if(x1>x2&&y2>y1){
				g.drawRect(x2,y1,x1-x2,y2-y1);
			}
			if(x2>x1&&y1>y2){
				g.drawRect(x1,y2,x2-x1,y1-y2);
					
			}
			if(x1>x2&&y2<y1){
				g.drawRect(x2,y2,x1-x2,y1-y2);
			}
			else{
				g.drawRect(x1,y1,x2-x1,y2-y1);
			}
			//g.drawRect(x1, y1, Math.abs(x2 - x1), Math.abs(y2 - y1));
		}
		//画圆,参数为外接矩形左上角坐标,长和宽
		if (bg.getSelection().getActionCommand().equals("圆")) {
			if(x1>x2&&y2>y1){
				g.drawOval(x2,y1,x1-x2,y2-y1);
			}
			if(x2>x1&&y1>y2){
				g.drawOval(x1,y2,x2-x1,y1-y2);
					
			}
			if(x1>x2&&y2<y1){
				g.drawOval(x2,y2,x1-x2,y1-y2);
			}
			else{
				g.drawOval(x1,y1,x2-x1,y2-y1);
			}
		}
		if(bg.getSelection().getActionCommand().equals("笔刷")){
			if(jc.getSelectedItem().equals("6")){
				n=6.0f;
			}
			if(jc.getSelectedItem().equals("12")){
				n=12.0f;
			}
			if(jc.getSelectedItem().equals("24")){
				n=55.0f;
			}
			 g.setStroke(new BasicStroke(n));
			 g.drawLine(x1, y1, x2, y2);
			 g.setStroke(new BasicStroke(1.0f));//设置画笔的大小
		}
		if(bg.getSelection().getActionCommand().equals("橡皮")){
			if(jc.getSelectedItem().equals("6")){
				n=6.0f;
			}
			if(jc.getSelectedItem().equals("12")){
				n=12.0f;
			}
			if(jc.getSelectedItem().equals("24")){
				n=55.0f;
			}
			
			g.setColor(g.getBackground());
			g.setStroke(new BasicStroke(n));
			g.drawLine(x1, y1, x2, y2);
			g.setStroke(new BasicStroke(1.0f));
			g.setColor(Color.black);//设置颜色
		}
	}
 

 其中的橡皮,只是把颜色换成背景色而已。。getSelectedItem().是获取下拉列表中你选择的数据

 

这个例子对实现鼠标监听,Graphcs类有个很好的加深,鼠标监听用来获取鼠标坐标

源代码已经上传,又不懂之处可以找我,或者留言,505860922

  • 大小: 15 KB
  • 大小: 24 KB
0
5
分享到:
评论

相关推荐

    JAVA简易画图板

    【JAVA简易画图板】是一个基于Java编程语言开发的简单绘图应用程序,它为用户提供了一个基本的图形界面,用户可以通过这个界面进行简单的绘画操作。这个程序包含了一些基本的绘图功能,如绘制形状、使用铅笔工具以及...

    java 画图板 windows画图板简单实现

    在Java编程语言中,实现一个简单的Windows画图板是一个经典的练习,它可以帮助初学者更好地理解图形用户界面(GUI)的设计以及事件处理机制。这个项目通常会涉及到Java的Swing库,这是一个用于创建桌面应用程序的GUI...

    java swing 画图板

    在这个"java swing 画图板"项目中,开发者仿照了Windows操作系统中的“画图”程序,提供了一个基本的绘图环境。下面将详细讨论相关的Java Swing知识点。 1. **组件(Components)**:在Swing中,JFrame是窗口的基础...

    Java简易画图板

    总的来说,"Java简易画图板"项目涵盖了Java GUI编程、图形绘制、事件处理以及基础的用户交互设计等多个方面,是学习和实践Java图形编程的一个良好实例。通过这个项目,开发者可以深入了解Java在图形应用中的应用,...

    Java 实现画图板

    在Java编程语言中,实现一个简单的画图板是一项常见的任务,尤其对于初学者来说,它可以帮助理解图形用户界面(GUI)编程的基本概念。这个项目涵盖了Java AWT(Abstract Window Toolkit)或Swing库中的基本绘图功能...

    一个Java实现的画图板程序

    在本项目中,“一个Java实现的画图板程序”是一个基于Java开发的图形用户界面应用,它允许用户进行基本的绘图操作,如绘制线条、形状、填充颜色等。这个程序通常会利用Java的AWT(Abstract Window Toolkit)或Swing...

    Java实现简易画图板

    在本文中,我们将深入探讨如何使用Java编程语言实现一个简易的画图板应用程序。这个程序允许用户绘制各种形状,如直线、圆、曲线、喷枪图案、直角矩形和圆角矩形,并且配备橡皮擦功能以擦除已绘制的内容。下面,我们...

    java学习小总结——画图板制作(附代码)

    在Java学习过程中,创建一个简单的画图板是一个经典的练习项目,它可以帮助我们深入理解图形用户界面(GUI)的构建和事件处理机制。本篇小结将聚焦于如何使用Java实现一个基本的画图板,同时提供相关的源码分析。 1...

    java画图板程序

    Java画图板程序是一种利用Java编程语言实现的交互式图形用户界面应用,它允许用户在屏幕上绘制各种图形,包括直线、曲线、圆等基础元素。这个程序通常基于Java的AWT(Abstract Window Toolkit)或者Swing库来构建,...

    java画图板系统

    【Java画图板系统】是一个基于Java编程语言开发的图形用户界面(GUI)应用程序,它允许用户在屏幕上绘制图形和图像。这个系统可能是为教育、设计或者简单的绘图练习而设计的,它提供了基本的绘图工具,如选择颜色、...

    java Swing练习画图板

    这个“java Swing练习画图板”项目是一个很好的实践平台,特别适合那些希望增强Java基础知识的初学者。通过模仿Windows 10自带的画图板,这个项目提供了一个实际应用Swing组件和功能的机会,同时涵盖了输入/输出(IO...

    java+swing+画图板Java实用源码整理learns

    这个资源包“java+swing+画图板Java实用源码整理learns”显然是一个专注于使用Swing来创建画图板的应用示例。Swing是Java AWT(Abstract Window Toolkit)的扩展,提供了更丰富的组件和更现代的外观,适用于桌面应用...

    原创java写的画图板软件(代码风格良好)

    《基于Java实现的简易画图板程序解析》 在计算机科学与信息技术领域,开发图形用户界面(GUI)应用程序是常见的任务之一。本篇文章将详细解析一个由Java编程语言实现的原创画图板软件,该软件具备基本的绘图功能,...

    java画图板程序,功能齐全,代码简单

    Java画图板程序是一种利用Java编程语言开发的图形用户界面应用,主要目的是提供一个平台让用户可以进行简单的绘图操作。这个程序的特点是功能全面且代码实现简洁,对于初学者来说,是一个很好的学习和实践项目。 ...

    java大作业--画图板

    在本项目"java大作业--画图板"中,我们主要关注的是利用Java编程语言实现一个功能丰富的图形用户界面(GUI)应用,它允许用户进行绘画操作,类似于电子画板。这个应用程序具备了一系列常见的绘图工具,如绘图、颜色...

    JAVA绘图板 画图小软件

    【JAVA绘图板 画图小软件】 ...通过学习和分析这个"JAVA绘图板 画图小软件",初学者不仅可以掌握Swing的基本用法,还能深入理解Java图形绘制、事件处理和文件操作等相关知识,为后续开发更复杂的桌面应用打下坚实基础。

    JAVA实现画图板

    这个画图板能够提供多种基础图形绘制功能,包括直线、圆形、矩形、橡皮擦、喷枪、椭圆、圆角矩形、弧线以及多边形。在实现过程中,主要涉及到Swing或AWT这两个Java GUI(图形用户界面)库。下面我们将详细讨论这些...

    Java画图板源代码

    【Java画图板源代码】是一个基于Java编程语言实现的简单图形编辑器,类似于Windows XP中的画图工具。这个项目为学习和理解Java图形用户界面(GUI)编程提供了很好的实践机会。下面我们将深入探讨其中涉及的主要知识...

    JAVA课程设计-画图板(含文档、源码)

    Java课程设计中的“画图板”项目是一个典型的图形用户界面(GUI)应用,它允许用户在屏幕上绘制图形。这个项目通常被用作教学实践,帮助学生掌握Java编程基础,特别是Swing库和AWT库在构建图形用户界面时的应用。...

Global site tag (gtag.js) - Google Analytics