Swing/CompositionEnabled のバックアップ差分(No.6)
- バックアップ一覧
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Swing/CompositionEnabled へ行く。
- 1 (2008-06-23 (月) 13:43:43)
- 2 (2008-06-23 (月) 14:54:01)
- 3 (2008-06-23 (月) 16:29:42)
- 4 (2013-01-20 (日) 23:43:47)
- 5 (2013-07-26 (金) 02:05:52)
- 6 (2013-08-20 (火) 14:21:02)
- 7 (2015-01-29 (木) 15:39:32)
- 8 (2016-08-09 (火) 13:55:10)
- 9 (2017-10-04 (水) 18:19:05)
- 10 (2019-04-09 (火) 15:46:49)
- 11 (2021-01-26 (火) 11:26:05)
- 12 (2023-12-14 (木) 10:19:23)
- 追加された行はこの色です。
- 削除された行はこの色です。
TITLE:JTableのセル編集を文字入力変換中からでも可能にする #navi(../) #tags(JTable, InputContext) RIGHT:Posted by &author(aterai); at 2008-06-23 *JTableのセル編集を文字入力変換中からでも可能にする [#c63972a9] ``IME``が直接入力以外で、一時ウィンドウが表示されていても、入力確定でセル編集を開始します。 -&jnlp; -&jar; -&zip; //#screenshot #ref(http://lh6.ggpht.com/_9Z4BYR88imo/TQTKG6DmuHI/AAAAAAAAAVc/WfOft65kSaQ/s800/CompositionEnabled.png) **サンプルコード [#s9f0a82f] #code(link){{ JTable table = new JTable(model) { @Override protected boolean processKeyBinding( KeyStroke ks, KeyEvent e, int condition, boolean pressed) { boolean retValue = super.processKeyBinding(ks, e, condition, pressed); //if(!check.isSelected()) return retValue; if(KeyStroke.getKeyStroke('\t').equals(ks) || KeyStroke.getKeyStroke('\n').equals(ks)) { System.out.println("tab or enter typed"); return retValue; } if(getInputContext().isCompositionEnabled() && !isEditing() && !pressed && !ks.isOnKeyRelease()) { int selectedRow = getSelectedRow(); int selectedColumn = getSelectedColumn(); if(selectedRow!=-1 && selectedColumn!=-1 && !editCellAt(selectedRow, selectedColumn)) { return retValue; } } return retValue; } }; //table.setSurrendersFocusOnKeystroke(true); }} **解説 [#x3a49a31] 上記のサンプルでは、以下のような設定になっています。 -タブやエンターキーでのセルフォーカス移動では編集開始しない -``JTable#processKeyBinding``をオーバーライドして、入力モードが確定したら選択セルの編集開始 - KBD{TAB}やKBD{Enter}キーでのセルフォーカス移動では編集開始しない - ``JTable#processKeyBinding``をオーバーライドして、入力モードが確定したら選択セルの編集開始 インプットメソッドが起動中かどうかは、``Component#getInputContext#isCompositionEnabled``メソッドで判断しています。 **参考リンク [#hde57819] -[http://docs.oracle.com/javase/jp/6/technotes/guides/imf/index.html Java Input Method Framework テクノロジ] - [http://docs.oracle.com/javase/jp/6/technotes/guides/imf/index.html Java Input Method Framework テクノロジ] **コメント [#x94a88eb] #comment