Prova a dare un'occhiata a questo codice che ho scritto.
Per qualsiasi chiarimento, sono a disposizione.

Ti dico prima cosa fa: apre una finestra, se digiti sulla tastiera, vedi apparire al centro della finestra i caratteri che hai digitato (tranne il BackSpace e altri caratteri speciali, che non ho gestito).
Se premi sul pulsantino di chiusura della finestra, questa (sorprendentemente!) si chiude :gren:

Ciao.

Lele

codice:
import java.awt.*;
import java.awt.event.*;

public class Finestrella extends Frame implements KeyListener {

   private Label lblTesto;
   private final int WIDTH = 300;
   private final int HEIGHT = 300;

   private class QuitListener implements WindowListener {
      public void windowClosing(WindowEvent we) { System.exit(0); }

      // I seguenti metodi non mi servono, ma devo implementarli (vuoti)
      public void windowResized(WindowEvent we) {}
      public void windowOpened(WindowEvent we) {}
      public void windowIconified(WindowEvent we) {}
      public void windowDeiconified(WindowEvent we) {}
      public void windowClosed(WindowEvent we) {}
      public void windowActivated(WindowEvent we) {}
      public void windowDeactivated(WindowEvent we) {}
   }

   public Finestrella() {
      setLayout(null);
      lblTesto = new Label();
      lblTesto.setBounds(0, 100, WIDTH, 30);
      lblTesto.setBackground(Color.cyan);
      add(lblTesto);
      addKeyListener(this);
      addWindowListener(new QuitListener() );
      setSize(WIDTH, HEIGHT);
      setVisible(true);
   }

   public void keyTyped(KeyEvent ke) {
      lblTesto.setText( lblTesto.getText()+ke.getKeyChar() );
   }

   public void keyPressed(KeyEvent ke) {}    // Implementato vuoto (necessario per KeyListener)
   public void keyReleased(KeyEvent ke) {}   // Implementato vuoto (necessario per KeyListener)

   public static void main(String [] args) {
      Finestrella fn = new Finestrella();
   }
}