La riga 86 (segnalata dall'eccezione) del file che hai postato è questa:
codice:
String b8 = bottone8.getText();
L'eccezione sollevata è una NullPointerException... ed, in effetti, bottone8 non è inizializzato da nessuna parte (nel metodo initialize). Io credo, comunque, che la riga a cui fa riferimento la tua eccezione sia questa:
codice:
String b1 = bottone1.getText();
In quanto nessuno dei pulsanti che hai dichiarato viene inizializzato (all'interno del metodo inizialize() vai ad inizializzare un pulsante "bottone1" dichiarato all'interno del metodo stesso, che quindi va fuori scope immediatamente).
PS: le stringhe sono oggetti e gli oggetti non si confrontano con l'operatore ==, ma usando il metodo equals(), quindi le condizioni che hai usato nel metodo Condizioni() non sono corrette:
codice:
if (b1 == ("X") && b2 == ("X") && b3 == ("X"))
// Da correggere:
if (b1.equals("X") && b2.equals("X") && b3.equals("X"))
Ciao.