当前位置:首页 > Java

java 如何画点

2026-02-05 05:00:33Java

绘制单个点的方法

在 Java 中绘制单个点可以通过 GraphicsGraphics2D 类实现。以下是一个简单的示例代码,展示如何在 JFrame 上绘制一个点:

import javax.swing.*;
import java.awt.*;

public class DrawPoint extends JPanel {
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.setColor(Color.RED);
        g.fillRect(50, 50, 1, 1); // 在坐标(50,50)绘制一个1x1像素的点
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("Draw Point Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new DrawPoint());
        frame.setSize(200, 200);
        frame.setVisible(true);
    }
}

使用 Graphics2D 绘制更精确的点

Graphics2D 提供了更多绘图控制选项,可以绘制更精确的点:

java 如何画点

import javax.swing.*;
import java.awt.*;

public class DrawPointWithGraphics2D extends JPanel {
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D) g;
        g2d.setColor(Color.BLUE);
        g2d.setStroke(new BasicStroke(1));
        g2d.drawLine(100, 100, 100, 100); // 在坐标(100,100)绘制一个点
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("Graphics2D Point Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new DrawPointWithGraphics2D());
        frame.setSize(300, 300);
        frame.setVisible(true);
    }
}

绘制多个点的方法

如果需要绘制多个点,可以将坐标存储在数组或列表中,然后循环绘制:

java 如何画点

import javax.swing.*;
import java.awt.*;
import java.util.ArrayList;
import java.util.List;

public class DrawMultiplePoints extends JPanel {
    private List<Point> points = new ArrayList<>();

    public DrawMultiplePoints() {
        points.add(new Point(50, 50));
        points.add(new Point(100, 100));
        points.add(new Point(150, 150));
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.setColor(Color.GREEN);
        for (Point p : points) {
            g.fillRect(p.x, p.y, 1, 1);
        }
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("Multiple Points Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new DrawMultiplePoints());
        frame.setSize(300, 300);
        frame.setVisible(true);
    }
}

自定义点的大小和形状

可以通过调整绘制形状的大小和类型来自定义点的外观:

import javax.swing.*;
import java.awt.*;

public class CustomPoint extends JPanel {
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D) g;

        // 绘制圆形点
        g2d.setColor(Color.RED);
        g2d.fillOval(50, 50, 5, 5); // 5x5像素的圆形点

        // 绘制方形点
        g2d.setColor(Color.BLUE);
        g2d.fillRect(100, 100, 5, 5); // 5x5像素的方形点
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("Custom Point Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new CustomPoint());
        frame.setSize(200, 200);
        frame.setVisible(true);
    }
}

使用 BufferedImage 绘制点

对于需要高性能绘图的场景,可以使用 BufferedImage

import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;

public class BufferedImagePoint extends JPanel {
    private BufferedImage image;

    public BufferedImagePoint() {
        image = new BufferedImage(200, 200, BufferedImage.TYPE_INT_ARGB);
        Graphics2D g2d = image.createGraphics();
        g2d.setColor(Color.BLACK);
        g2d.fillRect(0, 0, 200, 200); // 黑色背景
        g2d.setColor(Color.YELLOW);
        g2d.fillRect(50, 50, 1, 1); // 黄色点
        g2d.dispose();
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawImage(image, 0, 0, this);
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("BufferedImage Point Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new BufferedImagePoint());
        frame.setSize(200, 200);
        frame.setVisible(true);
    }
}

这些方法涵盖了 Java 中绘制点的基本技术,可以根据具体需求选择适合的方法。

标签: java
分享给朋友:

相关文章

java程序如何运行

java程序如何运行

编写Java代码 使用文本编辑器或IDE(如IntelliJ IDEA、Eclipse)编写Java源代码,保存为.java文件。例如: public class HelloWorld {…

java如何获取当前时间

java如何获取当前时间

获取当前时间的方法 在Java中,可以通过多种方式获取当前时间。以下是几种常见的方法: 使用 java.util.Date Date currentDate = new Date(); Syste…

如何安装java软件

如何安装java软件

下载Java安装包 访问Oracle官方网站或OpenJDK开源项目页面,选择适合操作系统的Java版本(如Windows、macOS或Linux)。对于个人使用,通常下载JDK(Java Devel…

java如何返回数组

java如何返回数组

返回数组的方法 在Java中,可以通过多种方式返回数组。以下是几种常见的方法: 直接返回数组 定义一个方法,返回类型为数组类型,直接在方法内部创建并返回数组。 public int[] getI…

如何学java基础

如何学java基础

学习Java基础的方法 理解Java的基本概念 Java是一种面向对象的编程语言,掌握基础概念如类、对象、继承、多态和封装是必要的。熟悉Java的语法结构,包括变量、数据类型、运算符和控制语句。 安…

如何系统的学习java

如何系统的学习java

学习Java的基础知识 Java的基础知识包括语法、数据类型、变量、运算符、控制流语句等。可以通过官方文档或入门书籍如《Java核心技术》来掌握这些内容。编写简单的程序练习基础语法,例如打印“Hell…