2017-03-24 9 views
0

Java FXのテキストフローコンテナにハイパーリンクが作成されています。次のコードは、前のリンクがクリックされた場合でも最後のハイパーリンクされたファイルのみを開きます。私は問題が反復にあると思う。私はJavaでまだ新鮮なので、親切に私と一緒に耐えてください。 `ハイパーリンクがクリックされたときにファイルを開く - Java FX

String[] splits = lessonResources.split("\\s+"); 

     for(String s: splits){ 
      link = new Hyperlink(s); 
      lessonResourcesTextFlow.getChildren().add(link); 
      linked = new File(s); 
      link.setOnAction((ActionEvent e) -> { 
        try { 
         if(Desktop.isDesktopSupported()){ 
           try { 
            Desktop.getDesktop().open(linked); 
           } catch (IOException ex) { 
             Logger.getLogger(LessonPlanController.class.getName ()).log(Level.SEVERE, null, ex); 
           } 
          } 
        } catch (Exception e) { 
         System.out.println(e); 
        } 
       }); 
     } 
+0

あなたは、少なくとも正しくスペースバーを使用してコードをフォーマットするために時間がかかる、無料であなたの問題を解決するには自分の自由な時間を寄付するためにランダムな見知らぬ人を尋ねる次の時間。 – csmckelvey

答えて

0

リンクイベントハンドラ内にファイルコンストラクタを含めることで、私の問題が解決しました。

String[] splits = lessonResources.split("\\s+"); 
    for(String s: splits){ 
      link = new Hyperlink(s); 
      lessonResourcesTextFlow.getChildren().add(link); 


      link.setOnAction((ActionEvent e) -> { 
        linked = new File(s); 
          try { 
           if(Desktop.isDesktopSupported()){ 
            try { 
             Desktop.getDesktop().open(linked); 
            } catch (IOException ex) { 
             Logger.getLogger(LessonPlanController.class.getName()).log(Level.SEVERE, null, ex); 
            } 
           } 

          } catch (Exception e) { 
           System.out.println(e); 
          } 
      }); 

    } 
関連する問題