JAVA创建绘图板JAVA构建主窗口鼠标拖动来绘制线条

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,

忍不住分享一下给大家。点击跳转到网站

学习总结

1、掌握 JAVA入门到进阶知识(持续写作中......)

2、学会Oracle数据库入门到入土用法(创作中......)

3、手把手教你开发炫酷的vbs脚本制作(完善中......)

4、牛逼哄哄的 IDEA编程利器技巧(编写中......)

5、面经吐血整理的 面试技巧(更新中......)

使用Java实现简单的画图功能

在本篇博客中,我们将介绍如何使用Java语言创建一个简单的图形用户界面(GUI)应用程序,该程序允许用户通过鼠标绘制基本图形。我们将使用Swing库来构建用户界面,并处理鼠标事件以实现绘图功能。

项目设置

首先,确保你的开发环境中已经安装了Java Development Kit (JDK)。如果你还没有安装JDK,可以从Oracle官网下载并按照说明进行安装。接下来,你可以使用任何IDE(如IntelliJ IDEA, Eclipse, 或者NetBeans)来编写代码,或者选择使用文本编辑器和命令行工具。

创建绘图板

我们开始创建一个名为DrawingBoard的类,它将扩展JPanel并重写paintComponent方法用于绘制图形。此外,我们还需要添加鼠标监听器来捕捉用户的鼠标动作。

java 复制代码
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class DrawingBoard extends JPanel {
    private static final int WIDTH = 800;
    private static final int HEIGHT = 600;
    private Image image;
    private Graphics2D graphics2D;
    private int currentX, currentY, oldX, oldY;

    public DrawingBoard() {
        setPreferredSize(new Dimension(WIDTH, HEIGHT));
        setBackground(Color.WHITE);
        setDoubleBuffered(false);
        addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent e) {
                oldX = e.getX();
                oldY = e.getY();
            }
        });

        addMouseMotionListener(new MouseAdapter() {
            public void mouseDragged(MouseEvent e) {
                currentX = e.getX();
                currentY = e.getY();
                if (graphics2D != null) {
                    graphics2D.drawLine(oldX, oldY, currentX, currentY);
                    repaint();
                    oldX = currentX;
                    oldY = currentY;
                }
            }
        });
    }

    @Override
    protected void paintComponent(Graphics g) {
        if (image == null) {
            image = createImage(getSize().width, getSize().height);
            graphics2D = (Graphics2D) image.getGraphics();
            graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
            clear();
        }
        g.drawImage(image, 0, 0, null);
    }

    public void clear() {
        graphics2D.setPaint(Color.white);
        graphics2D.fillRect(0, 0, getWidth(), getHeight());
        graphics2D.setPaint(Color.black);
        repaint();
    }
}
构建主窗口

现在,我们需要创建一个主窗口来容纳我们的DrawingBoard组件。我们将使用JFrame作为主容器,并向其中添加DrawingBoard实例。

java 复制代码
import javax.swing.*;

public class Main {
    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            JFrame frame = new JFrame("Simple Drawing Board");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.add(new DrawingBoard());
            frame.pack();
            frame.setLocationRelativeTo(null); // Center the window
            frame.setVisible(true);
        });
    }
}
运行程序

完成上述步骤后,你可以运行Main类中的main方法来启动应用程序。你应该会看到一个窗口弹出,你可以在其中用鼠标拖动来绘制线条。

扩展功能

为了使绘图板更加实用,我们可以考虑添加以下特性:

  • 支持多种颜色和线宽的选择。
  • 提供橡皮擦功能。
  • 添加撤销/重做功能。
  • 允许保存和加载绘图。

这些功能可以通过引入额外的组件(如按钮、菜单等)和状态管理逻辑来实现。随着项目的复杂度增加,你可能需要考虑使用MVC(Model-View-Controller)设计模式来组织代码结构,从而提高可维护性和扩展性。

结语

通过这篇文章,我们了解了如何使用Java Swing库创建一个简单的绘图应用程序。尽管这个示例相对基础,但它为更复杂的图形应用提供了一个良好的起点。希望这篇博客能激发你探索更多关于Java GUI编程的知识。

往期文章

 第一章:日常_JAVA_面试题集(含答案)
 第二章:日常_JAVA_面试题集(含答案)

平安壹钱包JAVA面试官:请你说一下Mybatis的实现原理

Java必备面试-热点-热门问题精华核心总结-推荐
 往期文章大全......

一键三连 一键三连 一键三连~

更多内容,点这里❤

相关推荐
@yanyu6668 分钟前
springboot实现查询学生
java·spring boot·后端
ascarl201013 分钟前
准确--k8s cgroup问题排查
java·开发语言
magic 24518 分钟前
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
java
爱敲代码的憨仔25 分钟前
分布式协同自动化办公系统-工作流引擎-流程设计
java·flowable·oa
纪元A梦1 小时前
分布式拜占庭容错算法——PBFT算法深度解析
java·分布式·算法
卿着飞翔1 小时前
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
java·rabbitmq·java-rabbitmq
fpcc1 小时前
跟我学c++中级篇——理解类型推导和C++不同版本的支持
开发语言·c++
陈阿土i1 小时前
SpringAI 1.0.0 正式版——利用Redis存储会话(ChatMemory)
java·redis·ai·springai
莱茵菜苗1 小时前
Python打卡训练营day46——2025.06.06
开发语言·python
爱学习的小道长1 小时前
Python 构建法律DeepSeek RAG
开发语言·python