public void draw( Graphics g, int DRAW_AREA_SIZE, int MARGIN ){
          g.setColor(Color.lightGray);
          Font font = g.getFont();
          g.setFont( new Font(font.getName(), font.getStyle(), 20 ));
          int n = values.length;
          int m = values[0].length;
          int CELL_SIZE = (DRAW_AREA_SIZE - 2*MARGIN)/Math.max(n, m);
          int fm = m * CELL_SIZE + MARGIN;
          int fn = n * CELL_SIZE + MARGIN;
          int ci = MARGIN;
          for (int i = 0; i<=n; i++) {
              g.drawLine(fm, ci, MARGIN, ci);
              ci += CELL_SIZE;
          }
          

          int cj = MARGIN;
          for (int j = 0; j<=m; j++) {
              g.drawLine(cj, fn, cj, MARGIN);
              cj += CELL_SIZE;
          }
          
          ci = MARGIN;
          for (int i = 0; i<n; i++) {
              cj=MARGIN;
              for (int j = 0; j<m; j++) {
                  int value = values[i][j];
                  if( value > 0 ){
                      g.setColor(Color.blue);
                      g.fillOval(cj+1, ci+1, CELL_SIZE-2, CELL_SIZE-2);
                  }else{
                     if( value < 0 ){
                        g.setColor(Color.red);
                        g.fillOval(cj+1, ci+1, CELL_SIZE-2, CELL_SIZE-2);
                     }
                  }
                  cj += CELL_SIZE;
              }
              ci += CELL_SIZE;
          }
    }