vfl_freak
Premium-User
Hallo zusammen,
in meinem Programm gibt es einen sog. Notizbuch-Dialog, der direkt nach dem Programmstart automatisch angezeigt wird, aber später auch per Button oder ShortCut aufrufbar ist.
Das jeweils Anzeigen klappt auch soweit gut!
Nun sollte ich in beiden Fällen den Fokus auf das Textfeld richten und den Cursor hinter das letzte Textzeichen setzen.
Im ersten Fall wird der Dialog dann so erzeugt und angezeigt:
Das klappt auch wunderbar! Ich sehe den geladenen Text und mein Cursor blinkt sich hinter dem letzten Zeichen einen Wolf .... ;-]
Rufe ich nun später den Dialog über den Button oder den ShortCut (hier wird dann "btnNotizbuch.doClick();" ausgeführt) auf, dann sehe ich zwar den Text, aber leider keinen Cursor und der Fokus scheint auch gesetzt zu sein ...
Hier der Code des entspr. "actionPerformed":
Lt. Debugger läuft das Programm sauber durch die jeweiligen cases durch, nur wird eben im zweiten Fall weder der Fokus noch das Caret gesetzt ....
Hat jemand eine Idee, was ich hier falsch mache ?
Oder habe ich irgendwas vergessen :-(
Danke und Gruß
Klaus
BTW: ich nutze den JBuilder 2007 ....
in meinem Programm gibt es einen sog. Notizbuch-Dialog, der direkt nach dem Programmstart automatisch angezeigt wird, aber später auch per Button oder ShortCut aufrufbar ist.
Das jeweils Anzeigen klappt auch soweit gut!
Nun sollte ich in beiden Fällen den Fokus auf das Textfeld richten und den Cursor hinter das letzte Textzeichen setzen.
Im ersten Fall wird der Dialog dann so erzeugt und angezeigt:
Java:
dlgN = new DlgNotizbuch( this, "Notizbuch für Bediener " + strBenutzerKQT, Config.getInstance(), false, true );
if (dlgN != null)
{
dlgN.readNotizbuchText();
if( !dlgN.isNotizbuchEmpty() )
{
int iLen = dlgN.jTextAreaNotizbuch.getText().length();
dlgN.jTextAreaNotizbuch.setCaretPosition( iLen-1 );
dlgN.jTextAreaNotizbuch.requestFocus( );
dlgN.setVisible(true);
}
}
Rufe ich nun später den Dialog über den Button oder den ShortCut (hier wird dann "btnNotizbuch.doClick();" ausgeführt) auf, dann sehe ich zwar den Text, aber leider keinen Cursor und der Fokus scheint auch gesetzt zu sein ...
Hier der Code des entspr. "actionPerformed":
Java:
public void btnNotizbuch_actionPerformed(ActionEvent e)
{
if (dlgN != null)
{
dlgN.jTextAreaNotizbuch.setText("");
dlgN.readNotizbuchText();
if( !dlgN.isNotizbuchEmpty() )
{
int iLen = dlgN.jTextAreaNotizbuch.getText().length();
dlgN.jTextAreaNotizbuch.setCaretPosition( iLen-1 );
dlgN.jTextAreaNotizbuch.requestFocus( );
}
else
{
dlgN.jTextAreaNotizbuch.setCaretPosition( 0 );
dlgN.jTextAreaNotizbuch.requestFocus();
}
dlgN.setVisible(true);
}
} // btnNotizbuch_actionPerformed
Lt. Debugger läuft das Programm sauber durch die jeweiligen cases durch, nur wird eben im zweiten Fall weder der Fokus noch das Caret gesetzt ....
Hat jemand eine Idee, was ich hier falsch mache ?
Oder habe ich irgendwas vergessen :-(
Danke und Gruß
Klaus
BTW: ich nutze den JBuilder 2007 ....