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
库创建了一个甘特图。通过TaskSeries
和Task
类,可以指定任务的名称和时间范围。运行这段代码,将会显示一个包含多个任务的甘特图,并且当前日期会以红色标记。
绘制类图
类图是面向对象设计中的一种图形表示方法,用于展示类和类之间的关系。Java中可以使用ObjectAid
插件来绘制类图。下面是一个示例代码:
public class Person {
private String name;
private int age;
public Person(String name, int age) {