在Java中绘制图表?

3

我有一个大小为[20][20]的数组,里面填充了0和1的值。我想绘制类似于天气图像的图表。其中1表示某种活动并带有一些颜色,而0则表示没有活动...我需要开始绘制的基本要素是什么?

谢谢 Jeet


0和1?你是指布尔值吗? - dacwe
更新了我的答案(包括整数矩阵和颜色)。 - dacwe
1个回答

5
以下代码是您想要实现的基本示例。它将生成此图像:
screenshot
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);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接