public void paint(Graphics g){
	this.setDoubleBuffered(true);
	Insets in = getInsets();               
	g.translate(in.left, in.top);            

	//int[][] gameboard = logic.getGameBoard();
	int cols = gameBoard.length;
	int rows = gameBoard[0].length;
		
	for (int c = 0; c < cols; c++){
	    for (int r = 0; r < rows; r++){
		int player = gameBoard[c][r];
		if(player == 0) // background
		    g.drawImage(background, 100+100*c, 100+100*r, this);
		else if (player == 2) // red = player2
		    g.drawImage(redPion, 100+100*c, 100+100*r, this);
		else // blue = player1
		    g.drawImage(bluePion, 100+100*c, 100+100*r, this);
		g.drawImage(part, 100+100*c, 100+100*r, this);
		if(c == 0){
		    g.drawImage(border_left, 0, 100+100*r, this); 
		    g.drawImage(border_right, cols*100+100, 100+100*r, this); 
		}
	    }
	    g.drawImage(border_top, 100+100*c, 0, this);
	    if ( c == chosenColumn)
		g.drawImage(arrow_active, 100+100*c, 10, this);
	    else 
		g.drawImage(arrow, 100+100*c, 10, this);
	    g.drawImage(border_bottom, 100+100*c, rows*100+100, this);
	}
	g.drawImage(corner_left_top, 0, 0, this);
	g.drawImage(corner_left_bottom, 0, rows*100+100, this);
	g.drawImage(corner_right_top, 100+100*cols, 0, this);
	g.drawImage(corner_right_bottom, 100+100*cols, rows*100+100, this);
		
	if (winner == IGameLogic.Winner.PLAYER1)
	    g.drawImage(blueWon, cols*100/2-50, rows*100/2+25, this);
	else if (winner == IGameLogic.Winner.PLAYER2)
	    g.drawImage(redWon, cols*100/2-50, rows*100/2+25, this);
    }