teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

コードの追加

2016/07/01 12:53

投稿

ta_ko
ta_ko

スコア13

title CHANGED
File without changes
body CHANGED
@@ -27,4 +27,54 @@
27
27
  ![イメージ説明](c18221be10e3a8b3dd8b04eb09df73d8.png)
28
28
  ↑この画像では一番上のセルをクリックして選択しています。
29
29
  右の出力が0になっているため、一番上のセルの情報は取得できているのですが
30
- 他のセルにカーソルを合わせても0が出力されてしまいます。(他のセルをクリックしてインデックスを取得できていないため)
30
+ 他のセルにカーソルを合わせても0が出力されてしまいます。(他のセルをクリックしてインデックスを取得できていないため)
31
+
32
+
33
+ ~~追記~~
34
+ ボタン周りのコードです。
35
+
36
+
37
+
38
+ ```lang-Java
39
+ @FXML
40
+ Button button;
41
+
42
+ @FXML
43
+ static ListCell cell;
44
+
45
+ @FXML public void sampleButton(ActionEvent e){
46
+ button.setOnAction(new EventHandler<ActionEvent>() {
47
+ @Override public void handle(ActionEvent e) {
48
+ // getParentを使い、このボタンが含まれるListCellを遡って探す
49
+ Node n = (Node)(e.getSource());
50
+ while(n != null && !(n instanceof ListCell)) {
51
+ n = n.getParent();
52
+ }
53
+ if(n != null) {
54
+ // 見つかった場合、
55
+ cell = (ListCell) n;
56
+ System.out.println(cell.getIndex());// ListCell#getIndexで番号が取れる
57
+ num = cell.getIndex();
58
+ }
59
+ }
60
+ });
61
+ }
62
+ ```
63
+
64
+
65
+ ```lang-FXML
66
+ <?xml version="1.0" encoding="UTF-8"?>
67
+
68
+ <AnchorPane id="AnchorPane" fx:id="cell" maxHeight="-1.0"
69
+ maxWidth="-1.0" minHeight="-1.0" minWidth="-1.0" prefHeight="90.0"
70
+ prefWidth="500.0" styleClass="cell" xmlns:fx="http://javafx.com/fxml/1"
71
+ xmlns="http://javafx.com/javafx/2.2" fx:controller="application.CellController">
72
+ <children>
73
+ <Button fx:id="button" layoutX="5.0" layoutY="57.0" maxHeight="25.0"
74
+ maxWidth="25.0" minHeight="20.0" minWidth="20.0" mnemonicParsing="false"
75
+ onAction="#sampleButton" prefHeight="25.0" prefWidth="25.0"
76
+ styleClass="circle-buttonfavo" text="" />
77
+ </children>
78
+ </AnchorPane>
79
+
80
+ ```

1

スクリーンショット載せました!

2016/07/01 12:53

投稿

ta_ko
ta_ko

スコア13

title CHANGED
File without changes
body CHANGED
@@ -9,4 +9,22 @@
9
9
  このような方法はあるのでしょうか。
10
10
  私の考えている方法で実装できなくても他の方法で
11
11
  セルのpaneをクリックすることなくインデックスを取得できる方法があるようでしたら
12
- 教えてくださるとうれしいです。
12
+ 教えてくださるとうれしいです。
13
+
14
+ ~~追記~~
15
+ スクリーンショットを載せます。セルの内容は青い四角で隠しています。
16
+ カーソルをセルの上でホバーすると出力に
17
+ listview.getFocusModel().getFocusedIndex()
18
+ が表示されるようにしています。
19
+ セルが黒くなっているのがカーソルが合わさっているセルで、
20
+ セルが青くなっているのがクリックして選択したセルです。
21
+
22
+
23
+ ![イメージ説明](0ee213f1e78f25f135b9ff7d4ffc49ca.png)
24
+ ↑今一番上のセルにマウスを合わせていて、右の出力では‐1になっておりセルの選択ができていません。
25
+
26
+
27
+ ![イメージ説明](c18221be10e3a8b3dd8b04eb09df73d8.png)
28
+ ↑この画像では一番上のセルをクリックして選択しています。
29
+ 右の出力が0になっているため、一番上のセルの情報は取得できているのですが
30
+ 他のセルにカーソルを合わせても0が出力されてしまいます。(他のセルをクリックしてインデックスを取得できていないため)