Ciao a tutti, avrei un problema che pensavo fosse diffuso, ma al quale non riesco a trovare soluzione.
Ho 2 finestre una con un bottone, che premuto scrive "ciao" sull'altra finestra.
L' avevo risolto come sotto, ma poi mi sono accorto che funziona bene sulle macchine dove c'è netbeans, altrimenti da problemi , particolari problemi mi da windows 7.

codice:
// finestra 1 (principale)
public final class finestraPrincipale extends FrameView {

          public static  boolean bottonePremuto= false;

         public class scrivi extends Thread{
            public scrivi(){
            }
               @Override
            public void run() {          
                  while (finestra2aperta==true) { //boolean true quando fin.2  aperta                    chiusa
            if (bottonePremuto==true) {     //boolean quando premo bottone fin.2
               System.out.println("ciao");
            }
        }

}


// finestra 2
public final class finestra2 extends javax.swing.JFrame {
    
                private void pulsanteMousePressed (java.awt.event.MouseEvent evt) {
                     finestraPrincipale.bottonePremuto=true;      
       }}
Come ho detto a volte il Thread non esce dal while, non si accorge cioè che la condizione è diventata true.

Ho provato anche così ma mi da errore :
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException



codice:
// finestra 1 (principale)
public final class finestraPrincipale extends FrameView {

        public  class classeA {
                public void provaA() {
                         System.out.println("  ciao  ");
           }
         }
}


// finestra 2
public final class finestra2 extends javax.swing.JFrame {
    
   classeB {
          finestraPrincipale.classeA windowOne;

          classeB (finestraPrincipale.classeA windowOne){
                this.windowOne = windowOne;
                this.windowOne.provaA();
   }}


                private void pulsanteMousePressed (java.awt.event.MouseEvent evt) {
                      classeB  b = new classeB(null);
                      b.windowOne.provaA();     
       }}
Qualche suggerimento ?

Grazie