Java图形代码大全

Java是一种面向对象的编程语言,它提供了丰富的图形库,可以用于创建各种各样的图形应用程序。本文介绍了一些常用的Java图形代码,并提供了相应的代码示例。

绘制简单图形

Java提供了Graphics类,可以用于绘制简单的图形,如直线、矩形、椭圆等。下面是一个简单的示例代码:

import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class SimpleShape extends JPanel {

    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        
        g.drawLine(10, 10, 100, 100);
        g.drawRect(50, 50, 100, 100);
        g.drawOval(150, 150, 100, 100);
    }
    
    public static void main(String[] args) {
        JFrame frame = new JFrame("Simple Shape");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        SimpleShape shape = new SimpleShape();
        frame.add(shape);
        
        frame.setSize(300, 300);
        frame.setVisible(true);
    }
}

上述代码通过Graphics类的方法绘制了一条直线、一个矩形和一个椭圆。运行这段代码,将会在窗口上显示这些图形。

使用甘特图调度任务

甘特图是一种常用的项目管理工具,用于显示任务的时间安排和进度。Java中可以使用JFreeChart库来绘制甘特图。下面是一个示例代码:

import java.awt.Color;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.ValueMarker;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.category.GanttRenderer;
import org.jfree.data.gantt.Task;
import org.jfree.data.gantt.TaskSeries;
import org.jfree.data.gantt.TaskSeriesCollection;
import org.jfree.data.time.SimpleTimePeriod;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.Layer;

public class GanttChartExample extends ApplicationFrame {

    public GanttChartExample(String title) {
        super(title);
        
        TaskSeriesCollection dataset = new TaskSeriesCollection();
        
        TaskSeries series1 = new TaskSeries("Task");
        series1.add(new Task("Task 1", new SimpleTimePeriod(new Date(2022, 1, 1), new Date(2022, 1, 5))));
        series1.add(new Task("Task 2", new SimpleTimePeriod(new Date(2022, 1, 6), new Date(2022, 1, 10))));
        series1.add(new Task("Task 3", new SimpleTimePeriod(new Date(2022, 1, 11), new Date(2022, 1, 15))));
        
        dataset.add(series1);
        
        JFreeChart chart = ChartFactory.createGanttChart("Gantt Chart", "Task", "Date", dataset);
        CategoryPlot plot = (CategoryPlot) chart.getPlot();
        GanttRenderer renderer = (GanttRenderer) plot.getRenderer();
        
        renderer.setSeriesPaint(0, Color.blue);
        
        Date today = new Date();
        ValueMarker marker = new ValueMarker(today.getTime());
        marker.setPaint(Color.red);
        marker.setAlpha(0.5f);
        marker.setLabel("Today");
        marker.setLabelAnchor(RectangleAnchor.TOP_LEFT);
        marker.setLabelTextAnchor(TextAnchor.TOP_RIGHT);
        plot.addRangeMarker(marker, Layer.BACKGROUND);
        
        ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(500, 300));
        setContentPane(chartPanel);
    }
    
    public static void main(String[] args) {
        GanttChartExample example = new GanttChartExample("Gantt Chart Example");
        example.pack();
        example.setVisible(true);
    }
}

上述代码使用JFreeChart库创建了一个甘特图。通过TaskSeriesTask类,可以指定任务的名称和时间范围。运行这段代码,将会显示一个包含多个任务的甘特图,并且当前日期会以红色标记。

绘制类图

类图是面向对象设计中的一种图形表示方法,用于展示类和类之间的关系。Java中可以使用ObjectAid插件来绘制类图。下面是一个示例代码:

public class Person {
    private String name;
    private int age;
    
    public Person(String name, int age) {