【发布时间】:2014-01-30 09:42:42
【问题描述】:
我的问题可能听起来有点奇怪,因为我不确定我是否可以用简单的方式描述我的问题 - 但我们开始吧:
我在 JavaFx-Object 中添加了很多行,并在每一行中添加了一个侦听器 - 现在用户将单击其中的一行,但我不知道他单击了哪一行。有没有办法向监听器添加信息?
public void addConnections(ICityLinker a[][]) {
int x1, y1, x2, y2;
for (int i = 0; i < a.length; i++) {
for (int j = i; j < a[i].length; j++) {
if (!(a[i][j] == null)) {
Path path = new Path();
x1 = map.getCountry(intToCity(i)).getX() + 5;
y1 = map.getCountry(intToCity(i)).getY() + 5;
MoveTo moveTo = new MoveTo();
moveTo.setX(x1);
moveTo.setY(y1);
x2 = map.getCountry(intToCity(j)).getX() + 5;
y2 = map.getCountry(intToCity(j)).getY() + 5;
LineTo lineTo = new LineTo();
lineTo.setX(x2);
lineTo.setY(y2);
path.getElements().add(moveTo);
path.getElements().add(lineTo);
path.setStrokeWidth(2);
path.setStroke(Color.BLACK);
paths.add(path);
path.getStrokeDashArray().addAll(5.0, 5.0);
path.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent t) {
//instead of 4 it would be helpful to have the list-position (paths is my list)
paths.get(4).setStroke(Color.RED);
paths.get(4).getStrokeDashArray().clear();
}
});
Label label = new Label();
label.setFont(Font.font(label.getFont().getFamily(), 8));
label.setText("" + a[i][j].getList().getFirst().getLength()
+ " " + a[i][j].getList().getFirst().getColor());
label.relocate((x1 + x2) / 2, (y1 + y2) / 2);
label.idProperty().set("trackName");
field.getChildren().addAll(path, label);
System.out.println("linie");
}
}
}
希望你能帮助我!
制造 巴克斯熊
ps.:如果你愿意,你可以纠正我的句子——它会帮助我提高我的英语^^
【问题讨论】:
标签: java javafx listener visibility