在Java中绘图?

时间:2011-03-09 07:26:22

标签: java

我有一个维度为[20] [20]的数组,其值为0& 1分的。我想绘制一个类似于天气图像的图表。 1代表一种颜色的活动,零代表没有活动......我需要什么才能开始绘图

谢谢 Jeet

1 个答案:

答案 0 :(得分: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);
}