首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java Graphics2D g2.drawLine正在添加点/坐标,而不是绘制线

Java Graphics2D是Java图形库中的一个类,用于绘制2D图形。g2是Graphics2D类的一个实例,可以通过它来进行绘图操作。

对于绘制线段的需求,可以使用g2.drawLine()方法来实现。该方法接受四个参数,分别是起始点的x坐标、起始点的y坐标、终点的x坐标和终点的y坐标。调用该方法后,会在起始点和终点之间绘制一条直线。

如果要在已有的线段上添加点或坐标,可以通过在绘制线段之前先绘制点或坐标来实现。可以使用g2.fillOval()方法来绘制一个实心圆点,该方法接受三个参数,分别是圆心的x坐标、圆心的y坐标和圆的半径。通过在需要添加点的位置调用该方法,可以在该位置绘制一个点。

以下是一个示例代码:

代码语言:txt
复制
import java.awt.*;
import javax.swing.*;

public class DrawLineExample extends JFrame {
    public DrawLineExample() {
        setTitle("Draw Line Example");
        setSize(400, 400);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
    }

    public void paint(Graphics g) {
        super.paint(g);
        Graphics2D g2 = (Graphics2D) g;

        // 绘制线段
        g2.drawLine(50, 50, 200, 200);

        // 添加点
        g2.setColor(Color.RED);
        g2.fillOval(100, 100, 5, 5);
        g2.fillOval(150, 150, 5, 5);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            DrawLineExample example = new DrawLineExample();
            example.setVisible(true);
        });
    }
}

在这个示例中,我们创建了一个继承自JFrame的类DrawLineExample,并重写了其paint()方法。在paint()方法中,我们首先调用父类的paint()方法来绘制窗口的默认内容,然后通过强制类型转换将Graphics对象转换为Graphics2D对象。接着,我们使用g2.drawLine()方法绘制了一条线段,并使用g2.fillOval()方法在线段上添加了两个点。

这是一个简单的绘制线段并添加点的示例,你可以根据实际需求进行修改和扩展。如果你想了解更多关于Java图形库的知识,可以参考腾讯云的Java图形库产品文档:Java图形库产品文档

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么都2022年了还有人用Java写GUI?

大家好,我是小面,今天给大家分享一下如何在Java中使用几何图形。 虽然工作中很少用到,在某些场合还是有用,比如说Eclipse,IDEA 就是用java写的GUI,现在这个IDE不是还是很红么?...也许到了2050年,还是用这些软件,或者还会出很多java写的GUI软件,也并不是国内人写得少,就是没用的。...以下部分描述了程序员如何使用Java绘制常见的几何图形。 如何在Java中画一条线 您可以使用drawLine(int x1,int y1,int x2,int y2)方法创建一条简单的直线。...这将从坐标(x1,y1)到(x2,y2)绘制一条线。...例如: g.drawLine(42, 55, 130, 25) 将绘制一条线,起点坐标X为x42,起点坐标y为55,终点坐标x为130,终点坐标y为25。

1.9K30

Web---图片验证码生成教程详解-从简单到复杂-从本地到前后台

Graphics g = img.getGraphics(); g.drawString("Hello",10,20); //使用此图形上下文的当前字体和颜色绘制由指定...上面那个很简单,对不对,我们看到的验证码都不是这样的,那好,我们给它加点干扰线,背景色,字符和y坐标随机生成。...有干扰线、背景色的验证码-写入文件 演示代码: package cn.hncu.img; import java.awt.Color; import java.awt.Font; import java.awt.Graphics...,旋转锚点的 Y 坐标 //Tx.scale(0.7+Math.random(), 0.7+Math.random()); //x坐标方向的缩放倍数,y坐标方向的缩放倍数...因为时间一直在变,所以每次点看不清,都会再向服务器请求一次,不会因为浏览器的缓存,不去请求了。 验证码就先到这里结束啦。

1.5K10

大一Java课设,五子棋小游戏

JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。...Photoshop的专长在于图像处理,不是图形创作。...在中间绘制出19×19的棋盘,鼠标在棋盘上移动到的位置以该格交线为中心绘制出半径为格子一半大小的红色边框。在界面的底部,绘制处玩家的积分和全局时间,字体为宋体,大小为18。...,通过mouseMoved();方法来监听,当鼠标移动到棋盘上时,或根据所获得的坐标,在以该格交线为中心绘制出半径为格子一半大小的红色边框。...游戏设置按钮在按钮栏第三个位置,当玩家鼠标点击该位置时,停止计时,弹出游戏设置的输入框,将用户输入的内容赋值给和maxTempTime和maxTime,并用try{}catch{}捕捉异常,如果输入的不是数字

2.1K20

Spring Security 如何添加登录验证码?松哥手把手教你给微人事添加登录验证码

在传统的登录流程中加入一个登录验证码也不是难事,但是如何在 Spring Security 中添加登录验证码,对于初学者来说还是一件蛮有挑战的事情,因为默认情况下,在 Spring Security 中我们并不需要自己写登录认证逻辑...准备验证码 要有验证码,首先得先准备好验证码,本文采用 Java 自画的验证码,代码如下: /** * 生成验证码的工具类 */ public class VerifyCode { private..., x, height - 15); } this.text = sb.toString(); drawLine(image); return image; } /** * 绘制干扰线...* * @param image */ private void drawLine(BufferedImage image) { Graphics2D g2 = (Graphics2D...= random.nextInt(height); g2.setColor(randomColor()); g2.setStroke(new BasicStroke(1.5f)); g2

1.7K20

JAVA通过BufferedImage进行图片的绘制,缩放,裁剪,水印等操作

最近开发当中,通过JAVA对图片进行了很多的操作,之前很少接触这方面的知识,特此记录下来 读取图片 //读取图片 通过JAVA自带的ImageIO里面的read方法 BufferedImage bufImage...(Color c) // 设置字体颜色 void setFont(Font font) // 设置线的宽度 setStroke(Stroke s) // 设置背景颜色 void setBackground...(如果两点为同一点,则绘制点) void drawLine(int x1, int y1, int x2, int y2) // 绘制一个矩形(空心) void drawRect(int...* @param srcImageFile 需要裁剪的图片 * @param x 裁剪时x的坐标(左上角) * @param y 裁剪时y的坐标(左上角...path.moveTo(192, 18); //添加一个弯曲段,由两个新定义的点,通过绘制一条二次曲线相交的当前坐标和指定的坐标 (x2,y2)的路径,使用指定的点 (x1,y1)作为二次参考 path.quadTo

11.7K31

开源)嗨,Java,你可以生成金山词霸的二维码分享海报吗?

01、大致思路 采集网络图片 加载海报背景和个人品牌二维码 利用 Graphics2D 将网络图片绘制成海报封面 利用 Graphics2D 在海报上打印中英文对照语 利用 Graphics2D 在海报上绘制个人专属二维码...05、利用 Graphics2D 将网络图片绘制成海报封面 Graphics2D 类扩展了 Graphics 类,提供了对几何形状、坐标转换、颜色管理和文本布局更为复杂的控制,是用于呈现二维形状、文本和图像的基础类...Graphics2D graphics2d = bgImage.createGraphics(); // 在背景上绘制封面图 graphics2d.drawImage(picImage, pic_x,...07、利用 Graphics2D 在海报上绘制个人专属二维码 有了前面绘制海报封面的经验,绘制二维码就变得轻而易举了。...09、将项目打成 jar 包发行 在将应用程序进行打包时,使用者都希望开发者只提供一个单独的文件,不是包含大量源码的文件夹。jar 包存在的目的正源于此。

72130

Java 竖排长图文生成

来计算字符串实际占用绘制的长度,这一块不做多讲,本篇主要集中在竖排文字的支持 设计 有前面的基础,在做竖排文字支持上,本以为是比较简单就能接入的,实际的实现过程中,颇为坎坷 1....竖排文字绘制 首先需要支持竖排文字的绘制,使用Graphics2d进行绘制时,暂不支持竖排绘制方式,因此我们需要自己来实现 而设计思路也比较简单,一个字一个字的绘制,x坐标不变,y坐标依次增加 private...从右到左支持 从左到右还比较好说,y坐标一直增加,当绘制的内容超过当前的图片时,直接在扩展后的图片上(0,0)位置进行绘制即可; 从右到左则需要计算偏移量,如下图 ? 实现 1....实际绘制y坐标计算 实际绘制中,y坐标还不能直接使用上面返回值,因为这个返回是字体的最上边对应的坐标,因此需要将实际绘制y坐标,向下偏移一个字 realY = calOffsetY(xxx) + fontMetrics.getAscent...绘制的起始x坐标 * @param options 配置项 */ public static void drawVerticalContent(Graphics2D g2d,

2.1K60

Java游戏编程不完全详解-2(1万6千字吐血推荐)

该类封装了 Java支持的基本呈现操作所需要的状态信息: 1、需要在其上绘制的Component对象 2、呈现和剪贴坐标的转换原点 3、当前的剪贴区 4、当前的颜色...y坐标绘制一条水平线,那么除了文字的所有下降部分外,该线完全 在文本的下面。...硬件加速图片显示 硬件加速图片显示(hardware-accelerated image)是图片被存贮在显示内存,不是系统内存中,所以使用硬件加速的图片显示速度非常快。...解决方法就是使用主动呈现的方式,该方式是在主线程中直接绘制图片!...注意,我们把妖怪的位置值使用浮点来计算,不是整数,这是因为如果使用整数,那么每隔10毫秒更新时,有一毫秒的时间图片不会移动。

1.5K30

带你学java核心技术图形程序设计:颜色+为文本设定特殊字体+图像

颜色 使用Graphics2D类的setPaint方法可以为图形环境上的所有后续的绘制操作选择颜色。要想绘制多种颜色,就需要按照选择颜色,绘制图形,再选择颜色,再绘制图形的过程实施。...如果使用Graphics对象,不是Graphics2D对象,就需要使用setColor方法设置颜色。 要想设置背景颜色,就需要使用Component类中的setBackground方法。...所以f.deriveFont(14)设置的是字体风格,不是大小!(其结果为斜体,因为14的二进制表示的是ITALIC,不是BOLD。) Java字体包含了通用的ASCII字符和符号。...; g2.drawString(message, , ); 接下来,将字符串绘制在面板的中央,不是任意位置。因此,需要知道字符串占据的宽和高的像素数量。...参数:str 将要绘制的字符串 x 字符串开始的x坐标 y 字符串基线的y坐标 java.awt.Graphics2D 1.2 • FontRenderContext getFontRenderContext

1.2K20

R语言高级绘图命令(标题-颜色等)

)的基础上增加一些额外的显示,如标题、绘制坐标轴、在特定的位置增加图形(比如辅助线,拟合线)或文字等。...b和截距为a的直线 abline(h=y)在纵坐标y处画水平线 abline(v=x)在横坐标x处画垂直线 abline(lm.obj)画由lm.obj确定的回归线 rect(x1, y1, x2, y2...,type="n")绘制一个“空白”的图形, 然后用低级函数来添加点,坐标轴,标签等: 低级绘图命令 R还可以在现有图形(通过高级绘图命令绘制)的基础上增加一些额外的显示,如标题、绘制坐标轴、在特定的位置增加图形...,type="n")绘制一个“空白”的图形, 然后用低级函数来添加点,坐标轴,标签等: opar <- par()#备份绘图参数 par(bg="lightgray", mar=c(2.5, 1.5,...(-1:1, side=2, las=1, at=-1:1, line=0.2, col="blue", cex=0.9) par(opar)#恢复绘图参数 交互式绘图命令 有时需要根据用户的想法不是数据进行绘图

6.1K31

R语言高级绘图命令(标题-颜色等)

)的基础上增加一些额外的显示,如标题、绘制坐标轴、在特定的位置增加图形(比如辅助线,拟合线)或文字等。...b和截距为a的直线abline(h=y)在纵坐标y处画水平线abline(v=x)在横坐标x处画垂直线abline(lm.obj)画由lm.obj确定的回归线rect(x1, y1, x2, y2)绘制长方形...,type="n")绘制一个“空白”的图形, 然后用低级函数来添加点,坐标轴,标签等:低级绘图命令R还可以在现有图形(通过高级绘图命令绘制)的基础上增加一些额外的显示,如标题、绘制坐标轴、在特定的位置增加图形...b和截距为a的直线abline(h=y)在纵坐标y处画水平线abline(v=x)在横坐标x处画垂直线abline(lm.obj)画由lm.obj确定的回归线rect(x1, y1, x2, y2)绘制长方形...mtext(-1:1, side=2, las=1, at=-1:1, line=0.2, col="blue", cex=0.9)par(opar)#恢复绘图参数 交互式绘图命令有时需要根据用户的想法不是数据进行绘图

4K60

Java俄罗斯方块,老程序员花了一个周末,连接中学年代!

这次利用周末的时间,去写了一个俄罗斯方块Java版本,感觉碰撞判断这个地方有点难处理,确实花了不少时间! 效果图 这里界面做的感觉不是很好看,但我觉得问题不大,功能到位就好!...(15列 20行) //绘制网格 private void drawGrid(Graphics g) { Graphics2D g_2d=(Graphics2D)g; g_2d.setColor...于是第一行第一个元素,用数组下标来表示就是 0,0 、第一行第二个元素就是0、1 这样就好办了,我们创建一个Block类,设置坐标和宽高即可绘制方块(宽高为固定20,与网格对应)。...package main; import java.awt.Graphics; public class Block { private int x=0;//x坐标 private int...比如上面图形,红色框住的为(0,0)的话,那最前面的那个是不是(-1,0),因为 y 他们是一样的,只要 x 往左边移动一个位置。 以此类推,第3个应该是(1,0),第4个是(2,0)。

75820
领券