nogの日記: Pint
日記 by
nog
ImageViewerを作っていると、沸々とファイラーを作りたくなってくる。ということでひさびさにいじっています。まずは新しいPnutsを拾ってきて動かしてみる、、、2年間放置していたかっ
んで、単純には動きませんでした。スクリプト側でちょっとした修正を施すことによってなんとか動くようになりましたが、フォーカスが相変わらずです。何とかならないものかなぁ。
Pintは(僕の中では)やりすぎなほどにPnutsで動かそうとしていて、実行時1度しか使わないスクリプトの量を減らした方がいいのかなぁっておもってます。けど、たぶんそのまんまでしょう。
以下追記
フォーカスが相変わらず(相変わらず不可解)というのは、複数のJPanelがあって、あるJPanelを呼んだ場合その中にあるコンポーネントをrequestFocusInWindowで明示的にリクエストしているにもかかわらずフォーカスが得られなかった。(と思っていた)
そこでよーくみてみると一瞬だけフォーカスを得ている。てっきり複数のJPanelをJTabbedPaneで変更していたので古い描写でも残っていると思ったら違った。そこでgoogleで"java focus lost"で検索するとそれっぽいページが見つかった。Macではほかのコンポーネントがvalidate(コンポーネントの内容が変わったら呼び出す関数)を実行するとフォーカスがどっか行っちゃうらしい。
てことで、requestFocusInWindowを行う前にvalidateを実行することでフォーカスのロストを回避できた。
Pint More ログイン