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必备面试-热点-热门问题精华核心总结-推荐
 往期文章大全......

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

更多内容,点这里❤

相关推荐
Python×CATIA工业智造1 小时前
Frida RPC高级应用:动态模拟执行Android so文件实战指南
开发语言·python·pycharm
pianmian12 小时前
类(JavaBean类)和对象
java
我叫小白菜2 小时前
【Java_EE】单例模式、阻塞队列、线程池、定时器
java·开发语言
狐凄3 小时前
Python实例题:基于 Python 的简单聊天机器人
开发语言·python
Albert Edison3 小时前
【最新版】IntelliJ IDEA 2025 创建 SpringBoot 项目
java·spring boot·intellij-idea
超级小忍3 小时前
JVM 中的垃圾回收算法及垃圾回收器详解
java·jvm
weixin_446122464 小时前
JAVA内存区域划分
java·开发语言·redis
悦悦子a啊4 小时前
Python之--基本知识
开发语言·前端·python
勤奋的小王同学~4 小时前
(javaEE初阶)计算机是如何组成的:CPU基本工作流程 CPU介绍 CPU执行指令的流程 寄存器 程序 进程 进程控制块 线程 线程的执行
java·java-ee
TT哇4 小时前
JavaEE==网站开发
java·redis·java-ee