質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Q&A

1回答

5242閲覧

【JavaFX】【TableView】Enterキーでセル移動がしたい。

mori02

総合スコア35

JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

0グッド

1クリップ

投稿2015/09/04 06:23

編集2022/01/12 10:55

下記はJavaFxにて作成したテーブルビューです。
COLORの列とNAMEの列が編集可能です。

テーブルビュー

今回したいことは
「緑」セルの選択時に「Enterキー」を押すと
「キュウリ」セルにフォーカスが当たり、
もう一度「Enterキー」を押すと
「黄」セルにフォーカスが当たる仕組みを考えています。

しかしフォーカス移動が全くされない状態でして、
Google検索を行っても答えが見つけれていない状態です。

上記方法をお分かりの方がいましたら
ご指南いただけないでしょうか。
どうぞよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mori02

2015/09/10 04:47

質問の仕方に誤りがありました。すみません。訂正させていただきます。 フォーカスの遷移順は、COLOR列 > NAME列 > (下の行に移動して)COLOR列 > NAME列 > (下の行に移動して)...というルールに従って行いたいのです。
guest

回答1

0

あまり自信はありませんが、何も実装しなければ、おそらくフォーカス遷移できないと思います。

実装例として、下記のコードをTableViewの"On Key Pressed"イベントにマッピングします。

簡単に説明すると、こんな感じのことをしています。
・押されたキーがENTERキーの場合だけ以下の処理を行う
⇒今どのセルが選択されているかを判断
⇒選択がcolor列ならname列を選択状態にする
⇒選択がname列なら行を+1してcolor列を選択状態にする
⇒それ以外ならcolor列を選択状態にする

@FXML void onKeyPressed(KeyEvent evt) { if (evt.getCode() == KeyCode.ENTER) { TableViewSelectionModel<MyTableRecord> sm = tableView.getSelectionModel(); ObservableList<TablePosition> cells = sm.getSelectedCells(); TableColumn col = colColor; int row = 0; if (!cells.isEmpty()) { TablePosition cell1 = cells.get(0); row = cell1.getRow(); switch (cell1.getColumn()) { default: case 0: col = colColor; break; case 1: col = colName; break; case 2: col = colColor; ++row; break; } } tableView.requestFocus(); sm.clearAndSelect(row, col); } }

投稿2015/09/11 00:11

argius

総合スコア9388

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問