Visto che tutti i componenti grafici sono dotati di un comodo metodo isVisible() (che, come dice il nome, ritorna true o false a seconda se il componente è visibile o meno), perchè non usarlo?
L'unica cosa in più da controllare è che il componente sia stato effettivamente creato (e che, quindi, non sia nullo).
codice:if (tuaFinestra != null) { if (tuaFinestra.isVisible()) { // E' già visibile } else { // va resa visibile (con setVisible(true) ) } } else { // Va creata da zero con new }