Originariamente inviato da massimoborreca
beh se sapevo quello che facevo di sicuro non avrei chiesto aiuto a voi...è ovvio che devo ancora imparare molte cose, e penso che anche con la pratica sia molto meglio!!!
percio dov'è che ho sbagliato? e come dovrei fare?
Te l'ho scritto. Dovevi lasciare il costruttore della classe B così com'era originalmente... solo dovevi aggiungerci il parametro e l'istruzione this.a = a;

Fine.

Poi andava modificata la parte di codice dove "mandi il testo" alla classe di partenza.

Faccio prima a postarti un esempio completo, scritto a mano, senza tutta la schifezza degli IDE (se già non l'avessi detto: abbandona l'IDE... non hai ancora sufficiente dimestichezza per capire cosa fa lui e cosa dovresti fare tu):

Classe A:
codice:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class A extends JFrame implements ActionListener {
   private JLabel lblTesto;
   private JButton cmdApri;
   private boolean aperto;

   public A() {
      Container c = getContentPane();
      c.setLayout( new BorderLayout() );

      aperto = false;

      JPanel jp = new JPanel( new BorderLayout() );
      lblTesto = new JLabel("Testo scritto: ");
      lblTesto.setHorizontalAlignment( JLabel.LEFT );

      cmdApri = new JButton("Apri");
      cmdApri.addActionListener( this );

      jp.add(lblTesto, BorderLayout.CENTER);
      jp.add(cmdApri, BorderLayout.EAST);

      c.add(jp, BorderLayout.NORTH);

      setTitle("Esempio - Finestra principale");
      setSize(800, 600);
      setDefaultCloseOperation( EXIT_ON_CLOSE );
      setLocationRelativeTo( null );
      setVisible( true );
   }

   public void setTesto(String str) {
      lblTesto.setText("Testo scritto: " + str);
      aperto = false;
   }

   @Override
   public void actionPerformed(ActionEvent ae) {
      if ( !aperto ) {
         B b = new B( this );
         aperto = true;
      }
   }

   public static void main(String[] args) {
      A a = new A();
   }
}
Classe B:
codice:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class B extends JFrame implements ActionListener {
   private JTextField txtTesto;
   private JButton cmdInvia;
   private A a;

   public B(A a) {
      this.a = a;

      Container c = getContentPane();
      c.setLayout( new BorderLayout() );

      JPanel jp = new JPanel( new BorderLayout() );
      txtTesto = new JTextField();
      cmdInvia = new JButton("Invia");
      cmdInvia.addActionListener( this );

      jp.add(txtTesto, BorderLayout.CENTER);
      jp.add(cmdInvia, BorderLayout.EAST);

      c.add(jp, BorderLayout.NORTH);

      setTitle("Esempio - Finestra secondaria");
      setSize(300, 200);
      setDefaultCloseOperation( DO_NOTHING_ON_CLOSE );
      setLocationRelativeTo( null );
      setVisible( true );
   }

   @Override
   public void actionPerformed(ActionEvent ae) {
      a.setTesto( txtTesto.getText() );
      dispose();
   }
}
Buono studio.


Ciao.