Sì, allora tu fai una cosa del genere:
codice:
JLabel fName;
e poi dopo un po' te ne esci con
codice:
fName.setText(....);
La prima delle due righe sta semplicemente a dire: Esisterà un oggetto di tipo JLabel e nome fName. Altre informazioni non ne dà, non viene creato, nè chiaramente aggiunto a nessun contenitore.

Quando provi ad eseguire la seconda riga, l'interprete si "perde" perché pur essendo stato dichiarato, l'oggeto fName non è stato di fatto inizializzato.

Per cui da qualche parte, ad esempio nel costruttore, dovrai aggiungere un paio di righe:
codice:
fName = new JLabel("File: ");
qualcheContenitore.add(fName);