广告
返回顶部
首页 > 资讯 > 后端开发 > Python >用Java实现简单画板功能
  • 496
分享到

用Java实现简单画板功能

2024-04-02 19:04:59 496人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

现在,我们来讲一下怎么用Java来实现简单画板,要实现的功能有:选择图形(方形、圆形、多边形...)、可以选择颜色。 首先,打开windows下的画图软件,我们知道我们需要一个窗体(

现在,我们来讲一下怎么用Java来实现简单画板,要实现的功能有:选择图形(方形、圆形、多边形...)、可以选择颜色。

首先,打开windows下的画图软件,我们知道我们需要一个窗体(JFrame);我们要画画,需要画板;我们要选择图形、颜色,所以还应用到按钮组件,说到这里,我们所需要的原料基本完成了。接下来,我们要考虑布局:我们采用最简单的布局,窗体的最上面放选择图形的按钮,中间是画板,最下面是选择颜色的按钮。就是这样的:

我们把图形按钮、颜色按钮安排在两个面板上,画板为一个单独的面板,对于布局,我们使用的是BorderLayout()布局管理器,它会把背景组件分割成5个区域,分别为上下左右 中。图形按钮和颜色按钮挺多的,难道我们要一个个的添加吗?不是的,我们可以用数组来存储图图形信息和颜色信息,然后用循环来添加,速度快,日后也容易添加相应的按钮,扩展画板的功能。代码如下:

String [] Shape={"直线","曲线","圆","喷枪","橡皮擦","矩形","椭圆","圆角矩形","弧线","多边形","图形","三角形","立体圆","树叶"};   
        for(int i=0;i<Shape.length;i++){
            JButton button=new JButton(Shape[i]);
            button.addActionListener(dl);    //添加事件监听机制
            ShapePanel.add(button);
        }        
 
Color [] color={Color.BLACK,Color.blue,Color.white,Color.gray,Color.red,Color.CYAN,Color.green,Color.darkGray,Color.pink};
        for(int i=0;i<color.length;i++){
            JButton button=new JButton();
            button.addActionListener(dl);   //添加事件监听机制
            button.setPreferredSize(new Dimension(30,30));
            button.setBackground(color[i]);
            ColorPanel.add(button);
        }

到这里,我们的UI就大功告成啦,可以喝杯茶休息 一下啦。

我们的画板要怎么知道用户点击了那一个图形按钮和颜色按钮呢?是的,我们会想到事件监听。但事件监听只是告诉我们用户按下了按钮呀?我们又怎么知道这是个颜色按钮还是图形按钮呀?是什么图形呀?是什么颜色呀?这是我们接下来要解决的问题。

在上面创建图形按钮和颜色按钮的时候,不知道你有没有发现两种按钮的不同呢?是的,图形按钮有标题,颜色按钮有背景颜色,我们可以根据这一点来判断用户按下的是图形按钮还是颜色按钮。那要怎么来取得按钮所传递过来的图形和颜色信息呢?我们可以在监听类里面添加Shape和Color属性来保存。代码如下:

public void actionPerfORMed(ActionEvent e){
        if(e.getActionCommand().equals("")){      //如果没有信息,那就是颜色按钮
            JButton button = (JButton) e.getSource();  
            color = button.getBackground();   
            System.out.println("color = " + color);
        }else{
            JButton button = (JButton) e.getSource();  
            shape = button.getActionCommand();   
            System.out.println("String = " + shape);
        }
    }

哇,到了这里,我们的工作已经完成一大半啦。

接下来就是根据获取到的颜色和图形信息进行画画啦。先说一下最简单的设置颜色,我们只需在用户按下鼠给画笔设置颜色属性就好。

那我们要怎么画图形呢?图形的完成有在鼠标点击是就完成的,有拖动完成的,有按下拖动然后松开才完成的....要怎么实现呢?是的,判断,根据Shape来判断,并做出相应的动作。

按下就完成的图形有:方形、圆形、弧线....这些图形的绘制也比较简单,只需获取点下的坐标值就可以进行画图了。如下:

public void mousePressed(MouseEvent e) {
         g=(Graphics2D) df.getGraphics();
         g.setColor(color);
         x1=e.getX();
         y1=e.getY();
         if(shape.equals("圆")){
             g.drawOval(x1, y1, 30, 30);
         }else if(shape.equals("矩形")){
             g.drawRect(x1, y1, 30, 40);
         }else if(shape.equals("圆角矩形")){
             g.drawRoundRect(x1, y1, 30, 40, 5, 10);
         }else if(shape.equals("椭圆")){
             g.drawOval(x1, y1, 30, 20);
         }else if(shape.equals("弧线")){
             g.drawArc(x1, y1, 100, 60, 0, 180);
         }
     }

按下并拖动才能完成的有:直线。我们只需记录下按下是的坐标与松开是的坐标,然后连接两点,就可以画直线了。代码如下:

public void mouseReleased(MouseEvent e) {
            x2 = e.getX();
            y2 = e.getY();
            if (shape.equals("直线")) {
                g.drawLine(x1, y1, x2, y2);
            }else if(shape.equals("多边形")&&!flag){
                g.drawLine(x1, y1, x2, y2);
                newx1=x1;
                newy1=y1;
                newx2=x2;
                newy2=y2;
                flag=true;
            }
 
     }

拖动完成的有:曲线、橡皮擦、喷枪。曲线,我们也是用画线的方法来实现,但我们每次只画一个点,即起始坐标相同,却每次画点的坐标为鼠标拖动过程中每一位置的坐标。橡皮擦呢?我们先把画笔颜色设置成画板背景色,用画曲线的方法,即鼠标所在的地方都画成背景色,实现橡皮擦的功能,为了突出效果,我们使用Graphics2D,把画笔调粗。这样,效果更加明显。喷枪,我们使用的是随机数,及拖动鼠标过程中,同时随机的画出数十个点,来模拟喷枪随机的效果。代码如下:

public void mouseDragged(MouseEvent e) {
            x2 = e.getX();
            y2 = e.getY();
            if (shape.equals("曲线")) {
//                g.setStroke(new BasicStroke(10));            
//                g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
                g.drawLine(x1, y1, x2, y2);
                x1 = x2;
                y1 = y2;
            }else if(shape.equals("橡皮擦")){
                g.setStroke(new BasicStroke(80));                            
                g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
                g.setColor(Color.WHITE);
                g.drawLine(x1, y1, x2, y2);
                x1 = x2;
                y1 = y2;
            }else if(shape.equals("喷枪")){
            //    g.setStroke(new BasicStroke(2));      //不用加粗                        
            //    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
                for(int k=0;k<20;k++){
                    Random i=new Random();       
                    int a=i.nextInt(8);
                    int b=i.nextInt(10);
                    g.drawLine(x2+a, y2+b, x2+a, y2+b);
                }
            }
        }

接下来,重点讲一下多边形的绘制。在绘制多变形时,第一条边与画直线是一样的,往后,鼠标每点一次,就画一条直线,当鼠标点两下时,就画两条直线,形成封闭的多边形。怎么实现呢?最重要的是要用四个变量来存储上一个点的坐标与最开始的坐标,每点一次,就在新的点与上一个点之间画直线,点两次就多画一条直线,围成封闭图形。代码如下:

public void mouseClicked(MouseEvent e) {
         if(shape.equals("多边形")&&flag){
             x2=e.getX();        //获取新的点的坐标
             y2=e.getY();
             if(e.getClickCount()==2){
                 g.drawLine(newx1, newy1, newx2, newy2);
                 flag=false;
             }
             g.drawLine(newx2, newy2, x2, y2);
             
             newx2=x2;   //存下上个点的坐标
             newy2=y2;
            }
}

到这里,我们终于大功告成啦,虽然还是很小儿科,但这是我们编程路上很重要的一步啦。看一下成果图吧:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: 用Java实现简单画板功能

本文链接: https://www.lsjlt.com/news/151105.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 用Java实现简单画板功能
    现在,我们来讲一下怎么用Java来实现简单画板,要实现的功能有:选择图形(方形、圆形、多边形...)、可以选择颜色。 首先,打开windows下的画图软件,我们知道我们需要一个窗体(...
    99+
    2022-11-13
  • Java实现简单画画画板
    用Java实现简单的画画画板,供大家参考,具体内容如下 一、代码 先直接上代码吧,备注大部分都在代码中。 import java.awt.*; import javax.swing....
    99+
    2022-11-13
  • Java实现简单小画板
    Java制作简单画板,包括两个类,一个主要画板类Drawpad,一个画板监听器DrawListener类。 1、Drawpad类,包括画板,画板功能设计,保存图片等 package ...
    99+
    2022-11-13
  • Java如何实现简单画板
    本文小编为大家详细介绍“Java如何实现简单画板”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java如何实现简单画板”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、代码先直接上代码吧,备注大部分都在代码中。...
    99+
    2023-07-02
  • Java如何实现简单小画板
    今天小编给大家分享一下Java如何实现简单小画板的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Java制作简单画板,包括两个...
    99+
    2023-07-02
  • Android实现简单画中画功能
    Android 8.0推出了PictureInPicture(画中画功能),目前只有在8.0以上的系统上支持。对比IOS,IOS的Picture in Picture 模式是苹果公司...
    99+
    2022-11-12
  • java基于GUI实现简单画笔小画板
    在一块画板上实现鼠标点击画图案的功能(本文未实现拖动划线功能),供大家参考,具体内容如下 思路 与java设计GUI的大体思路一致, 先设置Frame类作为框架, 其中添加组件类作为...
    99+
    2022-11-13
  • Java Swing实现画板的简单操作
    Java Swing 画板的操作(修改颜色,更改图形,清除,任务栏按钮),供大家参考,具体内容如下 话不多说,直接看代码 package Swing; import javax.sw...
    99+
    2022-11-13
  • Java语言怎么实现一个简单的画图板的功能呢
    要实现一个简单的画图板,可以使用Java的图形库(如Swing或JavaFX)来创建图形界面,并使用鼠标事件和绘图功能来实现画图功能...
    99+
    2023-08-18
    Java
  • Android简单实现画图功能
    如何在图片上画画呢?这里写了一个demo,供大家参考 一、先看一眼工程结构 工程结构: 二、自定义view 这个自定义view实现了保留轨迹的功能,代码如下 packag...
    99+
    2022-06-06
    Android
  • JS实现简单留言板功能
    本文实例为大家分享了JS实现简单留言板的具体代码,供大家参考,具体内容如下 言归正传,之前的案例相信大家都已经完全弄清楚了,还记得我们之前统计字数的那个案例吗?忘记的可以再去翻阅一下...
    99+
    2022-11-13
  • 基于java实现画图板功能
    本文实例为大家分享了java实现画图板功能的具体代码,供大家参考,具体内容如下 一、介绍 这个画图板主要实现的功能是画矩形(矩形使用的是一个函数画图的方法,这样画出来的图形比较有特点...
    99+
    2022-11-12
  • Java如何实现画图板功能
    Java可以使用JavaFX或Swing来实现画图板功能。下面是一个简单的示例代码,演示如何使用JavaFX实现一个简单的画图板:`...
    99+
    2023-08-18
    Java
  • Java实现简易画图板
    本文实例为大家分享了Java实现简易画图板的具体代码,供大家参考,具体内容如下 这是Windows系统自带的画图板,我们就是模仿着用Java去写一个简易版的画图板。 效果图 图中...
    99+
    2022-11-12
  • Android自定义View实现简易画板功能
    本文实例为大家分享了Android自定义View实现简易画板的具体代码,供大家参考,具体内容如下 自定义VIew实现简易画板效果,功能包括清空、选择颜色,选择大小,效果如下 画板布...
    99+
    2022-11-13
  • android实现简单的画画板实例代码
    直接看代码,注释都写清楚了 代码如下:public class MainActivity extends Activity { private ImageView ...
    99+
    2022-06-06
    画板 Android
  • 用Java实现简单ATM机功能
    本文实例为大家分享了Java实现简单ATM机功能的具体代码,供大家参考,具体内容如下 项目介绍 基于大家使用银行卡在ATM机取款操作,进行相对应ATM机操作流程的实现。 项目功能 1...
    99+
    2022-11-13
  • 利用Java怎么实现一个画板功能
    今天就跟大家聊聊有关利用Java怎么实现一个画板功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。基本的思路是这样的:画板实现大致分三部分:一是画板界面的实现,二是画板的监听以及画图...
    99+
    2023-05-31
    java ava
  • java实现简单点赞功能
    本文实例为大家分享了java实现简单点赞功能的具体代码,供大家参考,具体内容如下 需求分析 分析: 1.必须先登录,否则提示2.第一次点赞(顶),点赞操作,点赞数+1,提示顶成功3...
    99+
    2022-11-13
  • Android实现绘画板功能
    目录实现流程:实现步骤:一、预期效果二、设置横竖屏切换三、确定布局四、自定义滑动条五、绘画区域六、MainActivity实现流程:     ...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作