[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends] TextFieldControlのfocus移動




[今日悩んでいたこと]

自分で extends した Dialog のサブクラスに
複数の borland.jbcl.control.TextField があり、
最初から n 番目までが setEditable(false) になっている。
Dialog#show() のタイミングで、n+1 番目の TextField に
focus を与えたい。

[ダメだった方法]

・jbInit() の中で、n+1 番目の TextField の requestFocus() を
  呼んでやる。
  → この中(コンストラクターの中)では focusGaind が発生しないのでダメ

・Dialog#show() をオーバーライドする
  → そもそもこのメソッドはオーバーライドしてはダメらしい。
     JBuilderそのものが、とても不安定になった。

[最終的に採用した姑息な手段]

すべての TextField に addFocusListener して、focusGained の
ハンドラーにこんなコードを書く

  void textField1_focusGained(FocusEvent e) {
    if (!textField1.isEditable()) textField1.transferFocus();
  }

# JBuilder 1.01 を使っています。
---------------------------------------------------------------
           遠藤靖之 (えんどう やすゆき)
   E-mail: yasuyuki@xxxxxxxxxx
      URL: http://members.aol.com/Eyasuyuki/ (Java互助会ホームページ)
〒171-0022 豊島区南池袋 2-14-10 瀬川池袋ビル 3F
           (株)エムティシー 技術営業部
       TEL 03-5396-0521 / FAX 03-5396-0525