我有一个维度为[20] [20]的数组,其值为0& 1分的。我想绘制一个类似于天气图像的图表。 1代表一种颜色的活动,零代表没有活动......我需要什么才能开始绘图
谢谢 Jeet
答案 0 :(得分:5)
代码(如下)是您想要做的基本示例。它会产生这个图像:
public static void main(String[] args) {
JFrame frame = new JFrame("Test");
final int[][] map = new int[10][10];
Random r = new Random(321);
for (int i = 0; i < map.length; i++)
for (int j = 0; j < map[0].length; j++)
map[i][j] = r.nextBoolean() ? r.nextInt() : 0;
frame.add(new JComponent() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
int w = getWidth() / map.length;
int h = getHeight() / map[0].length;
for (int i = 0; i < map.length; i++) {
for (int j = 0; j < map[0].length; j++) {
if (map[i][j] != 0) {
g.setColor(new Color(map[i][j]));
g.fillRect(i * w, j * h, w, h);
}
}
}
}
});
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 400);
frame.setVisible(true);
}