Der Anwender kann in die untere Box Text eingeben und ihn editieren. Aber wenn der Anwender die Eingabetaste betätigt, passiert nichts.
setEditable()
Methode
Es passiert nichts, da das untere Textfeld keinen Listener registriert hat.
Wir 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 ); } ..... }
Schlagt eine Stelle für die setEditable()
Methode vor.