home *** CD-ROM | disk | FTP | other *** search
/ Australian PC Authority 1999 May / may1999.iso / May / JBUILDER / JSAMPLES.Z / GridComponent.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-30  |  1.7 KB  |  69 lines

  1. import java.awt.Color;
  2. import java.awt.Component;
  3. import java.awt.Dimension;
  4. import java.awt.Graphics;
  5. import java.awt.Rectangle;
  6.  
  7. class GridComponent extends Component {
  8.    protected int gridCount;
  9.    protected int gridSize;
  10.    protected Color currentColor;
  11.    protected int preferredSize;
  12.  
  13.    public GridComponent(int var1) {
  14.       this.gridCount = var1;
  15.       this.gridSize = 10;
  16.       this.currentColor = Color.lightGray;
  17.    }
  18.  
  19.    public void setPreferredSize(int var1) {
  20.       this.preferredSize = var1;
  21.    }
  22.  
  23.    public Dimension getPreferredSize() {
  24.       return new Dimension(this.preferredSize, this.preferredSize);
  25.    }
  26.  
  27.    public Dimension getMinimumSize() {
  28.       return this.getPreferredSize();
  29.    }
  30.  
  31.    public void setBounds(int var1, int var2, int var3, int var4) {
  32.       int var5 = Math.min(var3, var4);
  33.       if (var5 < 100) {
  34.          this.currentColor = Color.red;
  35.       } else if (var5 < 200) {
  36.          this.currentColor = Color.blue;
  37.       } else if (var5 < 300) {
  38.          this.currentColor = Color.yellow;
  39.       } else {
  40.          this.currentColor = Color.white;
  41.       }
  42.  
  43.       this.gridSize = Math.max(1, var5 / this.gridCount);
  44.       super.setBounds(var1, var2, var3, var4);
  45.    }
  46.  
  47.    public void paint(Graphics var1) {
  48.       Rectangle var2 = var1.getClipBounds();
  49.       if (this.gridSize > 0) {
  50.          var1.setColor(this.currentColor);
  51.          int var3 = var2.y + var2.height;
  52.          int var4 = var2.x + var2.width;
  53.          int var5 = var2.y / this.gridSize * this.gridSize;
  54.          int var6 = var3 / this.gridSize * this.gridSize;
  55.          int var7 = var2.x / this.gridSize * this.gridSize;
  56.          int var8 = var4 / this.gridSize * this.gridSize;
  57.  
  58.          for(int var9 = var7; var9 <= var8; var9 += this.gridSize) {
  59.             var1.drawLine(var9, var2.y, var9, var3);
  60.          }
  61.  
  62.          for(int var10 = var5; var10 <= var6; var10 += this.gridSize) {
  63.             var1.drawLine(var2.x, var10, var4, var10);
  64.          }
  65.       }
  66.  
  67.    }
  68. }
  69.