Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package jason.environment.grid;
  
  import java.awt.Canvas;
  import java.awt.Color;
  import java.awt.Font;
  import java.awt.Graphics;
  
View component for a GirdWorldModel.

Author(s):
Jomi
 
 public class GridWorldView extends JFrame {
 
     private static final long serialVersionUID = 1L;
 
     protected int cellSizeW = 0;
     protected int cellSizeH = 0;
 
     protected GridCanvas     drawArea;
     protected GridWorldModel model;
 
     protected Font defaultFont = new Font("Arial"., 10);
  
     public GridWorldView(GridWorldModel modelString titleint windowSize) {
         super(title);
         this. = model;
         initComponents(windowSize);
         model.setView(this);
     }

    
sets the size of the frame and adds the components
 
     public void initComponents(int width) {
         setSize(widthwidth);
         getContentPane().setLayout(new BorderLayout());
          = new GridCanvas();
         getContentPane().add(.);        
     }
     
     @Override
     public void repaint() {
          = .getWidth() / .getWidth();
          = .getHeight() / .getHeight();
         super.repaint();
         .repaint();
     }

    
updates all the frame
 
     public void update() {
         repaint();
     }
    
    
updates only one position of the grid
 
     public void update(int xint y) {
         Graphics g = .getGraphics();
         if (g == nullreturn;
         drawEmpty(gxy);
         draw(gxy);
     }
 
     public void drawObstacle(Graphics gint xint y) {
         g.setColor(.);
         g.fillRect(x *  + 1, y * +1, -1, -1);
         g.setColor(.);
         g.drawRect(x *  + 2, y * +2, -4, -4);
     }
 
     public void drawAgent(Graphics gint xint yColor cint id) {
         g.setColor(c);
         g.fillOval(x *  + 2, y *  + 2,  - 4,  - 4);
         if (id >= 0) {
             g.setColor(.);
             drawString(gxy, String.valueOf(id+1));
         }
     }
     
     public void drawString(Graphics gint xint yFont fString s) {
         g.setFont(f);
         FontMetrics metrics = g.getFontMetrics();
         int width = metrics.stringWidths );
         int height = metrics.getHeight();
         g.drawStringsx*+(/2-width/2), y*+(/2+height/2));
     }
 
     public void drawEmpty(Graphics gint xint y) {
         g.setColor(.);
         g.fillRect(x *  + 1, y * +1, -1, -1);
         g.setColor(.);
         g.drawRect(x * y * );
     }


    
method to draw unknown object, probably overridden by the user viewer class
 
     public void draw(Graphics gint xint yint object) {
         //g.setColor(Color.black);
        //drawString(g,x,y,defaultFont,String.valueOf(object));
    }
    private static int limit = (int)Math.pow(2,14);
    private void draw(Graphics gint xint y) {
        if ((.[x][y] & .) != 0) {
            drawObstacle(gxy);
        }
        
        int vl = .*2;
        while (vl < ) {
            if ((.[x][y] & vl) != 0) {
                draw(gxyvl);
            }
            vl *= 2;
        }
        
        if ((.[x][y] & .) != 0) {
            drawAgent(.getGraphics(), xy..getAgAtPos(xy));
        }
    }
    
    public Canvas getCanvas() {
        return ;
    }
    
    public GridWorldModel getModel() {
        return ;
    }
    
    class GridCanvas extends Canvas {
        
        private static final long serialVersionUID = 1L;
        public void paint(Graphics g) {
             = .getWidth() / .getWidth();
             = .getHeight() / .getHeight();
            int mwidth = .getWidth();
            int mheight = .getHeight();
            g.setColor(.);
            for (int l = 1; l <= mheightl++) {
                g.drawLine(0, l * mwidth * l * );
            }
            for (int c = 1; c <= mwidthc++) {
                g.drawLine(c * , 0, c * mheight * );
            }
            for (int x = 0; x < mwidthx++) {
                for (int y = 0; y < mheighty++) {
                    draw(g,x,y);
                }
            }
        }
    }
New to GrepCode? Check out our FAQ X