用Java代码画一个静态的柱状图
时间: 2024-03-16 18:46:34 浏览: 33
好的,以下是一个用 Java 代码绘制静态柱状图的示例:
```java
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class BarChart extends JPanel {
private int[] values;
private String[] labels;
public BarChart(int[] values, String[] labels) {
this.values = values;
this.labels = labels;
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
int width = getWidth();
int height = getHeight() - 20;
int barWidth = width / values.length;
int maxValue = Integer.MIN_VALUE;
for (int i = 0; i < values.length; i++) {
if (values[i] > maxValue) {
maxValue = values[i];
}
}
g.setColor(Color.BLUE);
for (int i = 0; i < values.length; i++) {
int barHeight = (int) (((double) values[i] / maxValue) * height);
int x = i * barWidth + 5;
int y = height - barHeight + 10;
int labelY = height + 15;
g.fillRect(x, y, barWidth - 10, barHeight);
g.setColor(Color.BLACK);
g.drawString(labels[i], x, labelY);
g.setColor(Color.BLUE);
}
}
public static void main(String[] args) {
int[] values = { 20, 40, 60, 80, 100 };
String[] labels = { "Label 1", "Label 2", "Label 3", "Label 4", "Label 5" };
JFrame frame = new JFrame();
frame.setSize(500, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
BarChart chart = new BarChart(values, labels);
frame.add(chart);
frame.setVisible(true);
}
}
```
在这个示例中,我们使用了 Java 的 Swing 库来绘制图形。在 `paintComponent` 方法中,我们首先计算出每个柱子的宽度和高度,然后使用 `fillRect` 方法来绘制柱子。最后,我们使用 `drawString` 方法在柱子下面绘制标签。
在 `main` 方法中,我们创建了一个 `BarChart` 对象,并将其添加到一个 `JFrame` 中,然后显示出来。您可以根据需要修改代码来适应您的应用场景。