JavaSwing矩形绘制教程

简介: JavaSwing矩形绘制教程矩形是计算机图形学中最基本的图形,JavaSwing也提供了绘制矩形的功能。本教程将介绍如何使用JavaSwing绘制矩形。

JavaSwing矩形绘制教程

  1. 创建图形界面

首先,我们需要创建一个图形界面。可以使用JavaSwing中的JFrame类创建一个窗口,代码如下:

import javax.swing.JFrame;

public class RectangleDrawing extends JFrame {

public RectangleDrawing() {

super(\Rectangle Drawing\ setSize(400, 300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(true);

}

public static void main(String[] args) {

new RectangleDrawing();

}

}

这个代码创建了一个名为“Rectangle Drawing”的窗口,大小为400x300像素,点击关闭按钮时程序将终止。

  1. 绘制矩形

接下来,我们在图形界面上绘制矩形。可以使用JavaSwing中的Graphics类进行绘制,代码如下:

import java.awt.Graphics;

import javax.swing.JFrame;

public class RectangleDrawing extends JFrame {

public RectangleDrawing() {

super(\Rectangle Drawing\ setSize(400, 300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(true);

}

@Override

public void paint(Graphics g) {

super.paint(g);

g.drawRect(50, 50, 100, 50);

}

public static void main(String[] args) {

new RectangleDrawing();

}

}

这个代码在图形界面上绘制了一个位于(50, 50)位置,宽100像素、高50像素的矩形。

  1. 修改矩形样式

可以使用Graphics类的方法修改矩形的样式,例如颜色、线条粗细等。代码如下:

import java.awt.Color;

import java.awt.Graphics;

import javax.swing.JFrame;

public class RectangleDrawing extends JFrame {

public RectangleDrawing() {

super(\Rectangle Drawing\ setSize(400, 300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(true);

}

@Override

public void paint(Graphics g) {

super.paint(g);

g.setColor(Color.RED);

g.fillRect(50, 50, 100, 50);

g.setColor(Color.BLACK);

g.drawRect(50, 50, 100, 50);

g.setColor(Color.BLUE);

g.setStroke(new BasicStroke(5));

g.drawRect(200, 50, 100, 50);

}

public static void main(String[] args) {

new RectangleDrawing();

}

}

这个代码将绘制的矩形颜色修改为红色,线条粗细修改为5像素的蓝色矩形。

  1. 实现用户交互

最后,我们可以通过实现鼠标事件来实现用户交互。例如,可以在用户点击鼠标时在图形界面上绘制一个矩形。代码如下:

import java.awt.Color;

import java.awt.Graphics;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import javax.swing.JFrame;

public class RectangleDrawing extends JFrame {

private int rectX = 0;

private int rectY = 0;

public RectangleDrawing() {

super(\Rectangle Drawing\ setSize(400, 300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(true);

addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

rectX = e.getX();

rectY = e.getY();

repaint();

}

});

}

@Override

public void paint(Graphics g) {

super.paint(g);

g.setColor(Color.RED);

g.fillRect(rectX, rectY, 100, 50);

g.setColor(Color.BLACK);

g.drawRect(rectX, rectY, 100, 50);

}

public static void main(String[] args) {

new RectangleDrawing();

}

}

这个代码在用户点击鼠标时绘制一个位于鼠标点击位置的红色矩形。

总结

本教程介绍了如何使用JavaSwing绘制矩形。通过创建图形界面、绘制矩形、修改矩形样式和实现用户交互等步骤,我们可以实现一个简单的矩形绘制程序。希望本教程能够对Java编程初学者有所帮助。
部分代码转自:https://www.wodianping.com/java/2023-08/252771.html

目录
相关文章
|
算法 Serverless Python
BUUCTF-rsarsa1
BUUCTF-rsarsa1
|
6月前
|
缓存 安全 Java
【Java并发】【synchronized】适合初学者体质入门的synchronized
欢迎来到我的Java线程同步入门指南!我不是外包员工,梦想是写高端CRUD。2025年我正在沉淀中,博客更新速度加快,欢迎点赞、收藏、关注。 本文介绍Java中的`synchronized`关键字,适合初学者。`synchronized`用于确保多个线程访问共享资源时不会发生冲突,避免竞态条件、保证内存可见性、防止原子性破坏及协调多线程有序访问。
168 8
【Java并发】【synchronized】适合初学者体质入门的synchronized
|
存储 关系型数据库 MySQL
MySQL数据库碎片化:隐患与解决策略
UUID作为主键可能导致MySQL存储碎片,影响性能。频繁的DML操作、字段长度变化和非顺序插入(如UUID)都会造成碎片。碎片增加磁盘I/O,降低查询效率,浪费空间,影响备份速度。建议使用自增ID,固定长度字段,并适时运行OPTIMIZE TABLE来减少碎片。
|
11月前
|
机器学习/深度学习 数据挖掘
二、机器学习之回归模型分析
二、机器学习之回归模型分析
685 0
|
机器学习/深度学习 人工智能 数据挖掘
Numba是一个Python库,用于对Python代码进行即时(JIT)编译,以便在硬件上高效执行。
Numba是一个Python库,用于对Python代码进行即时(JIT)编译,以便在硬件上高效执行。
|
存储 Java
java使用pdfbox 3.0版本删除pdf文件中指定字符所在行,生成新的pdf文件
【5月更文挑战第25天】java使用pdfbox 3.0版本删除pdf文件中指定字符所在行,生成新的pdf文件
1602 1
|
机器学习/深度学习 算法 数据挖掘
【Python 机器学习专栏】Python 机器学习入门:基础概念与流程
【4月更文挑战第30天】本文介绍了Python在机器学习中的重要性,机器学习的基础概念和分类,包括监督学习、非监督学习和强化学习。Python因其丰富的库(如Scikit-learn、TensorFlow、PyTorch)、简单易学的语法和跨平台性在机器学习领域广泛应用。文章还概述了机器学习的基本流程,包括数据收集、预处理、特征工程、模型训练与评估等,并列举了常用的Python机器学习算法,如线性回归、逻辑回归、决策树和支持向量机。最后,讨论了Python机器学习在金融、医疗、工业和商业等领域的应用,鼓励读者深入学习并实践这一技术。
295 2
|
前端开发 Java 应用服务中间件
选择 Spring Boot 进行微服务开发的 7 大理由
选择 Spring Boot 进行微服务开发的 7 大理由
209 1
|
SQL 监控 关系型数据库
MySQL慢查询日志配置指南:发现性能瓶颈,提升数据库效率
MySQL慢查询日志配置指南:发现性能瓶颈,提升数据库效率
1471 0
|
编解码 Linux vr&ar
如何使用ffmpeg将.m4a 格式转换为 pcma格式
ffmpeg是一款开源的万能媒体格式转换工具。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的