zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Der Anwender kann in die untere Box Text eingeben und ihn editieren. Aber wenn der Anwender die Eingabetaste betätigt, passiert nichts.

Die setEditable() Methode

GUI

Es passiert nichts, da das untere Textfeld keinen Listener registriert hat. Sie könnten das Programm modifizieren, so dass es einen Listener hat, aber das würde nicht dem ursprünglichen Programmdesign entsprechen. Eine bessere Idee (für dieses Programm) ist es den Anwender davon abzuhalten Text in das falsche Textfeld einzugeben. Das kann mit der setEditable() Methode getan werden:

outText.setEditable( false );

Hier ist outText eine Variable, die auf ein JTextField verweist. Die setEditable() Methode hat einen Boole'schen Parameter. Wenn der Parameter false ist, dann kann das Feld nicht durch den Anwender geändert werden. (Die setText() Methode funktioniert trotzdem immer noch.) Hier ist ein Auszug aus dem Programm:


public class Wiederholer extends JFrame implements ActionListener
{

   JLabel inLabel     = new JLabel( "Geben Sie Ihren Namen ein:  " ) ;
   JTextField inText  = new JTextField( 15 );

   JLabel outLabel    = new JLabel( "Hier kommt dann Ihr Name:" ) ;
   JTextField outText = new JTextField( 15 );

   public Wiederholer( String titel)      // Konstruktor
   {
      super( titel );
      setLayout( new FlowLayout() );

      add( inLabel  ) ;
      add( inText   ) ;
      add( outLabel ) ;
      add( outText  ) ;

      inText.addActionListener( this );
      setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
   }

   .....
}

FRAGE 13:

Schlagen Sie eine Stelle für die setEditable() Methode vor.