Как нарисовать двумерную графику на Java?

#java #graphics #2d #java-2d

#java #графика #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 simple такую графику: введите описание изображения здесь

Что-то вроде:

введите описание изображения здесь

Ответ №1:

вы могли бы использовать библиотеку, подобную http://www.jfree.org/jfreechart / (LGPL-Лицензия) в Интернете есть множество примеров, и это довольно просто в использовании.

вот пример, который, кажется, соответствует вашим требованиям:

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

Ответ №2:

Предполагая, что вы используете 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, сосредоточьтесь на BufferedImage и Graphics2D только.

Ответ №3:

Существует Java 2D API:http://java.sun.com/products/java-media/2D и многие библиотеки построения графиков, которые легко найти с помощью веб-поиска.