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();
}
}