【问题标题】:Javafx Hyperlink parameters on actionJavafx 超链接参数操作
【发布时间】:2015-09-04 20:00:37
【问题描述】:

感谢您阅读我的问题并为菜鸟道歉

我正在编写我的第一个 JavaFX 应用程序,其中我有一个超链接数组,其中超链接的文本值中具有纬度经度(例如“42N 7E”),该超链接每秒从另一个线程更新并更新超链接文本在主线程中。 (这很好用)

public static void setPosLatLong(String posLatLong, int SID) {
    Main.posLatLong[SID].setText(posLatLongValue);
}

我试图在单击超链接时使用超链接文本中的值以使用最新的 latlong 值动态更改目标 URL...但我收到错误“从 lambda 表达式引用的局部变量必须是最终的或有效的最终'

int SID = 'id of the hyperlink corresponding to a machine'

posLatLong[SID] = new Hyperlink();
posLatLong[SID].setOnAction((ActionEvent event) -> {
    getHostServices().showDocument("http://maps.google.com/maps?z=17&q=" + posLatLong[SID].getText());
});

我已经尝试了各种方法来解决这个问题,但我可耻地被卡住了。如果有人能指出我正确的方向,以便在打开浏览器时将超链接数组中的最后更新值作为参数传递,将不胜感激。

【问题讨论】:

    标签: dynamic hyperlink javafx actionevent


    【解决方案1】:

    我想我自己设法找到了解决方案,所以我会发布它以防它对某人有用

                posLatLong[i].setOnAction(new EventHandler<ActionEvent>() {
                    @Override
                    public void handle(ActionEvent event) {
                        String eventLatLong = ""; 
                        Object source = event.getSource();
                        if (source instanceof Hyperlink) {
                            Hyperlink link = (Hyperlink) source;
                            eventLatLong = link.getText();
                        }
    
                        getHostServices().showDocument("http://maps.google.com/maps?z=17&q=" + eventLatLong    );
                    }
                });
    

    多田!

    【讨论】:

      猜你喜欢
      • 2016-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-03
      • 1970-01-01
      • 2010-11-08
      相关资源
      最近更新 更多