`
逆天子军少
  • 浏览: 78915 次
  • 性别: Icon_minigender_1
  • 来自: 安庆
社区版块
存档分类
最新评论

java之画图板浅析(一)

    博客分类:
  • java
阅读更多
这里说的画图板可不是系统中的画图板,但还是能实现系统画图板的一些功能的。
设计思路及过程:在coding之前,我们肯定先要大致对我们画板的轮廓有个基本定位,可以创建一个界面,上面是3个按钮,分别是直线,矩形,椭圆,点击不同按钮可以画出不同形状,然后下方是绘图区,这样就要求我们必须创建两个JPanel,将上方菜单栏和下方绘图区隔离开。当我们创建两个JPanel后,添加分隔符,参考代码如下:
		//添加分隔符
		JSplitPane sp=new JSplitPane(JSplitPane.VERTICAL_SPLIT,jp,jp_down);
		//设置分割线宽度
		sp.setDividerSize(2);
		//使分隔符不能上下拖动
		sp.setEnabled(false);

然后,在上下两个JPanel里面分别添加组件,进行处理,板就初步设计好了,接下来就要解决画图的问题。
我们脑海中首先必须有个概念,既然是画图板,那到底是在哪里画,是在JFrame对象上么,我们自己可以通过查阅文档,来解决这个问题。我们必须获得下面JPanel上的画布,而且,必须在界面显示之后获取!!
	    this.setVisible(true);
	    //note:获取画布必须在setVisible之后
	    Graphics g =jp_down.getGraphics();

我们要解决的主要问题还是怎么给各个按钮加上监听器,因为都是按钮,所以我们可以给它们加上同一个动作监听器。这样,相对于定义多个动作监听器,代码更简洁。现在问题又转移了,3个按钮添加的是同一个监听器,怎么区分开呢。说难也不难,我们在点击不同按钮时,可以传个不同的值给监听器,让监听器做相应的处理。比如,我点击直线按钮时,监听器执行后传一个为1的值给另一个处理形状的监听器,然后经处理,我们就可以画出直线,而不是画出矩形,椭圆。代码奉上:
		  if(e.getActionCommand().equals("直线"))
		  {
			  nType =1;
		  }

处理形状的监听器里相应的代码:
if(btn_lst.getType() ==1)
		{
                 g.drawLine(x1,y1,x2,y2);		
		}

ok,离我们自己的画图板已经不远了,需要精通的最后一点是能熟练的传参,这个在我的第一篇博客有简单说明(http://1316478764.iteye.com/admin/blogs/1946898)

简单的画图板我们已经实现,可以画直线,矩形,椭圆,但与系统的画图板一比,这算个毛线。我们需要做的是精益求精,不断增加自己画图板的功能。我们可以添加个在三个按钮后添加个菜单栏,再加几个菜单项。就我个人而言,想要把产品做得尽量完美一是为了取悦自己,让自己玩起来爽,有成就感,另一个目的就是方便自己。所以为了取悦自己,我加了两个菜单项,,用来选择颜色和画笔的粗细,为了方便自己,我又加了第三个菜单项,用来清空画布。
实现改变颜色比较简单,我们可以调用JColorChooser,代码:
this.color=javax.swing.JColorChooser.showDialog(null, "请选择颜色",java.awt.Color.black );
然后将选择的颜色传到处理形状的监听器即可。
实现改变画笔粗细相对复杂一点,我们必须根据判断用户有没有输入数值,或者输入的数值是不是int型,来确定是否弹出对话框进行友情提示,我们可以这样进行判断:
        		   //判断用户是否输入了数字
        		   if(tf.getText().isEmpty())
        			   tipCreate();
        		   else{
            		   //只有在用户输入了数值后才能调用方法得到
                	   String strValue = tf.getText();
                	   //将字符串中的数字全部转换为空!!!!
                	   String strChangedValue=strValue.replaceAll("[0-9]", "");
                	   //通过判断转换后的字符串长度来判断用户输入的是不是纯数字
                	   if(strChangedValue.length()==0){
                	      //将string类型转换成int型
                	       nValue = Integer.decode(strValue);     
                	       f.dispose();
                	   }
                	   else
                		   tipCreate();
然后我们需要做的就是传参啦啦啦。
最后实现清空画布的功能,这个我用了一个简单的方法,通过查阅文档,我找到了graphics下面的clearRect方法。
public class ButtonListenerToClear extends JFrame implements ActionListener {
	public void actionPerformed(ActionEvent e){
	   g.clearRect(0, 0, f.getWidth(), f.getHeight());
	}

现在看看自己的画图板,感觉稍稍有点感觉了,但我们一直都在处理监听器和传参,图形的绘制都是直接调用方法,所以我们看着画出的直线,矩形,感觉还是很低级,我们可以画属于自己的立体图形,比如立方体,圆柱等,经过进一步处理,我完成了我的画板,如下:


当然,画板还可以实现更多的功能,比如保存和打开自己画的图形,重绘,这些将在以后的学习中慢慢完善。
  • 大小: 29.8 KB
2
3
分享到:
评论

相关推荐

    java画图板程序代码

    Java 画图板程序是一个简单易用的图形绘制程序,提供了基本的绘图功能。通过对 Java 画图板程序的分析和解释,我们可以更好地理解 Java 语言的图形编程技术,并且可以根据实际需求对 Java 画图板程序进行扩展和修改...

    JAVA简易画图板

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

    Java简易画图板

    【Java简易画图板】是一个基于Java编程语言开发的简单图形绘制工具,它为用户提供了一个基本的画布,用户可以通过各种绘图工具进行创作。这个程序包含了一系列基础的图形元素和编辑功能,如直线、铅笔、圆形和矩形,...

    java swing 画图板

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

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

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

    Java 实现画图板

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

    JAVA_画图板实现

    在Java编程语言中,"JAVA_画图板实现"是一个常见的项目,用于学习图形用户界面(GUI)设计和事件处理。这个项目的核心是利用Java的Swing或JavaFX库来创建一个可交互的画布,用户可以在上面进行绘图操作。下面我们将...

    Java画图板应用

    Java画图板应用是一种基于Java编程语言开发的图形用户界面(GUI)程序,它提供了类似Windows操作系统内置画图板的功能。这个程序的核心是利用Java的Swing或JavaFX库来构建用户界面,允许用户进行基本的绘图操作,如...

    JAVA应用程序 画图板

    【JAVA应用程序 画图板】是一个使用JAVA编程语言实现的简单图形用户界面(GUI)应用,它提供了一个画布供用户进行绘画操作。这个程序的核心是利用JAVA的Swing或JavaFX库来创建图形界面,并处理用户的输入事件,如...

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

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

    一个Java实现的画图板程序

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

    java画图板系统

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

    精美JAVA程序 画图板

    《精美JAVA程序 画图板》是一款基于JAVA编程语言开发的图形用户界面应用程序,专为用户提供一个简单易用、功能丰富的画图平台。在已经安装并配置好Java Development Kit (JDK) 的环境下,用户只需双击提供的.jar文件...

    用java编的画图板 功能齐全 外观精美

    标题中的“用java编的画图板 功能齐全 外观精美”表明这是一个使用Java编程语言开发的图形用户界面(GUI)应用,主要用于绘画和图形编辑。它具有丰富的功能和良好的视觉设计,使得用户可以方便地进行各种图形操作。 ...

    JAVA实现画图板

    在JAVA编程环境中,创建一个简易的画图板是一项有趣且实用的任务。这个画图板能够提供多种基础图形绘制功能,包括直线、圆形、矩形、橡皮擦、喷枪、椭圆、圆角矩形、弧线以及多边形。在实现过程中,主要涉及到Swing...

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

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

    java画图板java画图板

    Java画图板是一种基于Java语言实现的图形用户界面(GUI)工具,允许用户在屏幕上绘制图形和图像。在Java中,我们通常使用Java AWT(Abstract Window Toolkit)或Swing库来创建这样的画图应用程序。这两个库都是Java ...

    基于java的画图板

    在Java编程领域,开发一个画图板应用程序是一项常见的练习,旨在帮助初学者理解和应用图形用户界面(GUI)组件。这个程序可能基于Java Swing库,它提供了丰富的组件来构建桌面应用程序。下面将详细讨论Java GUI、...

    java设计画图板

    在Java编程领域,设计并实现一个画图板是一项常见的练习,它可以帮助开发者深入理解图形用户界面(GUI)的创建和事件处理。这个“java设计画图板”项目,显然是使用了集成开发环境(IDE)——MyEclipse进行编写的。...

Global site tag (gtag.js) - Google Analytics