如何在Java上绘制二维图形?

时间:2011-05-27 18:52:31

标签: java graphics 2d java-2d

我有2个不同的列表。它们中的每一个都包含x和y值对(它们具有正值和负值)。如何在2D轴上绘制它们?我想为每个值添加points,第一个列表将为蓝色,第二个列表为红色。

我的列表类型:

List<List<Double>>

List<Double> inside of List<...> has 2 variables, first of it for x value and the second one is for y value.

然而,我只需要在Java(桌面应用程序)上绘制二维图形并在任何地方放置点,改进我的变量代码就不那么重要了。

PS:

我想要那种图形的more and more simpleenter image description here

类似的东西:

enter image description here

3 个答案:

答案 0 :(得分:4)

你可以使用像http://www.jfree.org/jfreechart/这样的库(LGPL-License)网上有很多例子,而且很容易使用。

这是一个例子,似乎符合您的要求:

http://www.java2s.com/Code/Java/Chart/JFreeChartMarkerDemo1.htm

答案 1 :(得分:1)

假设您正在使用Swing与面板,您可以使用以下内容:

public class JImagePanelExample extends JPanel {

    private BufferedImage image;
    private Graphics2D drawingBoard;
    private int x, y; // Image position in the panel

    // Let's assume image is a chart and you need to draw lines
    public JImagePanelExample(BufferedImage image, int x, int y) {

        super();
        this.image = image;

        // Retrieving a mean to draw lines
        drawingBoard = image.createGraphics();

        // Draw what you need to draw (see other methods too)
        drawingBoard.drawLine(0, 10, 35, 55);

    }

    // Called by Swing to draw the image in the panel
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawImage(image, x, y, null);
    }

}

如果您不想使用Swing而只需要2D绘图,请只关注BufferedImageGraphics2D

答案 2 :(得分:0)

有一个Java 2D API:http://java.sun.com/products/java-media/2D/,可以通过网络搜索轻松找到许多图表库。