public GamePanel(GameTable gameTable, TimePanel timePanel) {
		this.gameTable = gameTable;
		this.timePanel = timePanel;
		this.words = gameTable.getWordsList();
		
		setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
		setBackground(UIConstants.BackgroundColor);
		setMinimumSize(DimensionMin);
		setPreferredSize(DimensionMin);

		JPanel wordPanel = new JPanel();
		wordPanel.setLayout(new BoxLayout(wordPanel, BoxLayout.Y_AXIS));
		wordPanel.setBorder(new EmptyBorder(0, 0, 10, 0));
		wordPanel.setBackground(UIConstants.BackgroundColor);
		add(wordPanel);

		JLabel lblInformazioniGiocatore = new JLabel("Your word");
		lblInformazioniGiocatore.setForeground(UIConstants.TextInfoColor);
		lblInformazioniGiocatore.setFont(UIConstants.TextInfoFont);
		wordPanel.add(lblInformazioniGiocatore);

		txtWord = new JTextField();
		txtWord.setBorder(null);
		txtWord.setAlignmentX(Component.LEFT_ALIGNMENT);
		txtWord.setHorizontalAlignment(SwingConstants.LEFT);
		txtWord.setBackground(UIConstants.BackgroundColor);
		txtWord.setText("");
		txtWord.setForeground(LblWordColor);
		txtWord.setMaximumSize(LblsDimensionMax);
		txtWord.setMinimumSize(LblsDimensionMin);
		txtWord.setFont(LblsFont);
		txtWord.setEnabled(false);
		txtWord.setInputVerifier(new CharVerifier());
		txtWord.addKeyListener(new KeyListener() {
			public void keyTyped(KeyEvent keyEvent) {
				if (keyEvent.getKeyChar() == '\n' && txtWord.getText().length() > 0) endPlay(false);
			}
			public void keyPressed(KeyEvent keyEvent) {}
			public void keyReleased(KeyEvent keyEvent) {}
		});
		((AbstractDocument) txtWord.getDocument()).setDocumentFilter(new UppercaseDocumentFilter());
		wordPanel.add(txtWord);

		JLabel lblInformazioniGiocatore2 = new JLabel("Last words");
		lblInformazioniGiocatore2.setForeground(UIConstants.TextInfoColor);
		lblInformazioniGiocatore2.setFont(UIConstants.TextInfoFont);
		add(lblInformazioniGiocatore2);
		
		for (int i = 0; i < Constants.WordToDisplay; i++) {
			lblLastsWord[i] = new JLabel("word " + i);
			lblLastsWord[i].setHorizontalTextPosition(SwingConstants.LEFT);
			lblLastsWord[i].setHorizontalAlignment(SwingConstants.LEFT);
			lblLastsWord[i].setForeground(
					new Color(LblWordColor.getRed() + LblWordColorIncrement * (i + 1),
							LblWordColor.getGreen() + LblWordColorIncrement * (i + 1),
							LblWordColor.getBlue() + LblWordColorIncrement * (i + 1)));
			lblLastsWord[i].setFont(LblsFont);
			lblLastsWord[i].setMaximumSize(LblsDimensionMax);
			lblLastsWord[i].setMinimumSize(LblsDimensionMin);
			//lblLastsWord[i].setPreferredSize(LblsDimensionMin);
			add(lblLastsWord[i]);
		}

		//Set the listener for the timePanel
		timePanel.setEndTimeListener(new Runnable() {
			public void run() { endPlay(true); }
		});

		//Refresh the list depending on the game table
		refresh();

		//Add we to the game table event listener, so we can update the words list graphically
		gameTable.addEventListener(this);


		if (gameTable.getTurnHolder() == gameTable.getLocalPlayer()) startPlay();

	}