質問編集履歴
2
コードの追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -27,4 +27,54 @@
|
|
27
27
|

|
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
スクリーンショット載せました!
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
|
+

|
24
|
+
↑今一番上のセルにマウスを合わせていて、右の出力では‐1になっておりセルの選択ができていません。
|
25
|
+
|
26
|
+
|
27
|
+

|
28
|
+
↑この画像では一番上のセルをクリックして選択しています。
|
29
|
+
右の出力が0になっているため、一番上のセルの情報は取得できているのですが
|
30
|
+
他のセルにカーソルを合わせても0が出力されてしまいます。(他のセルをクリックしてインデックスを取得できていないため)
|