All pastes #810919 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-12-10 12:44 UTC
rendered paste body
	public BioVy(Performance p) { 
		
		this.p = p;
		addMouseListener(new MouseClickListener());	
	}

	public void paintComponent(Graphics g) {
		super.paintComponent(g);
		
		g.setFont(new Font("Monospaced", Font.BOLD, 13));
		
		for (int i = 0; i < p.getR(); i++) {
		
				g.setColor(Color.BLACK);
				g.drawString("rad " + (i+1), marg-60, (marg-15) + (i+1)*size);
				g.drawString("rad " + (i+1), (marg+20) + p.getC()*size, (marg-15) + (i+1)*size);
		}
		
		g.setFont(new Font("Monospaced", Font.PLAIN, 12));
		
		for (int i = 0; i < p.getR(); i++) {			
			for (int j = 0; j < p.getC(); j++) {
				
				g.setColor(Color.BLACK);
				g.drawRect(marg + j*size, marg + i*size, size, size);
				
				if (p.getStatus(i, j) == 1) {
					g.setColor(Color.GREEN);
					g.fillRect(marg + j*size + 1, marg + i*size + 1, size-1, size-1);
				} else if (p.getStatus(i, j) == 2) {
					g.setColor(Color.YELLOW);
					g.fillRect(marg + j*size + 1, marg + i*size + 1, size-1, size-1);
				} else if (p.getStatus(i, j) == 3) {
					g.setColor(Color.RED);
					g.fillRect(marg + j*size + 1, marg + i*size + 1, size-1, size-1);
				}
			
				g.setColor(Color.BLACK);
				String seat = "" + (j+1);
				
				if ((j+1) != p.getC())
					g.drawString(seat, (marg-30) + (j+1)*size, (marg-20) + (i+1)*size);
				else
					g.drawString(seat, (marg-30) + p.getC()*size, (marg-20) + (i+1)*size);
			}
		}
		
		if (r > 0 && r < p.getR() + marg)
			if (c > 0 && c < p.getC() + marg) {
				
				g.drawRect(c*size+6, r*size+6, size-2, size-2);
				g.drawRect(c*size+4, r*size+4, size+2, size+2);
			}
	}
	
	public int getStl() {
		
		return size;
	}
	
	public void unMarkSeat() {
		
		r = 0;
		c = 0;
		repaint();
	}
	
	public int getMarkedRow() {
		
		return c;
	}

	public int getMarkedCol() {
		
		return r;
	}
	
	private class MouseClickListener extends MouseAdapter {
		
		public void mouseClicked(MouseEvent e) {
		
			int x = e.getY();
			int y = e.getX();
			
			if (x >= marg && x <= size*p.getR() + marg)
				if (y >= marg && y <= size*p.getC() + marg) {

					r = x/size;
					c = y/size;
				}
				
			repaint();
		}
	}


------------------------------
I Kontroll-klassen:

	private class Lyssnare implements ActionListener {
		
		public void actionPerformed(ActionEvent e) {
			 
			if (e.getSource() == quit)
				System.exit(0);
			
			else if (e.getSource() == boka) {
				p.boka(vy.getMarkedRow(), vy.getMarkedCol());
				vy.unMarkSeat();
				}
				
			else if (e.getSource() == köpa) {
				p.köp(vy.getMarkedRow(), vy.getMarkedCol());
				vy.unMarkSeat();
				}
				
			vy.repaint();				
		}
	}