【问题标题】:How to text file content to a tableview in javafx如何将文件内容文本发送到 javafx 中的 tableview
【发布时间】:2016-10-12 07:08:11
【问题描述】:

我正在尝试将文本文件内容填充到 javafx 中的表视图中。以下是我的代码:

public static void loadFile() throws FileNotFoundException, IOException {
  ObservableList<Song> songs = FXCollections.observableArrayList();  
  File file = new File("songDATA.txt");
  FileReader reader = new FileReader(file);
  BufferedReader br = new BufferedReader(reader);
  String line;  
  while ((line = br.readLine()) != null) {
    String[] song = line.split("//");
    songs.add(new Song(song[0], song[1], song[2], Double.parseDouble(song[3]), 
        Integer.parseInt(song[4])));

  }
  reader.close();
}

但我收到异常错误消息:

执行 C:\Users\user\Documents\NetBeansProjects\MusicLibrary\dist\r‌un1361663306\MusicLi‌​brary.jar 使用平台 C:\Program Files\Java\jdk1.8.0_74\jre/bin/java Oct 13, 2016 年 8 点 47 分 31 秒 com.sun.javafx.binding.SelectBinding$SelectBindingHelper getObservableValue 警告:评估选择绑定时出现异常 [宽度] 2016 年 10 月 13 日 8:47:31 PM com.sun.javafx.binding.SelectBinding$SelectBindingHelper getObservableValue 警告:评估选择绑定时出现异常 [高度] 线程“JavaFX 应用程序线程”中的异常 java.lang.RuntimeException:在 javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:‌​1774) 在 javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(F‌XMLLoader.java:1657) 在 com.sun.javafx.event.CompositeEventHandler.dispatchBubblingE‌vent(CompositeEventH‌​andler.java:86) 在 com.sun.javafx.event.EventHandlerManager.dispatchBubblingEve‌nt(EventHandlerManag‌​er.java:238) 在 com.sun.javafx.event.EventHandlerManager.dispatchBubblingEve‌nt(EventHandlerManag‌​er.java:191) 在 com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Basi‌cEventDispatcher.jav‌​a:58) 在 com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Ev‌​entDispatchChainImpl‌​.java:114) 在 com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:‌​74) 在 com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) 在 javafx.event.Event.fireEvent(Event.java:198) 在 javafx.scene.control.MenuItem.fire(MenuItem.java:462) 在 com.sun.javafx.scene.control.skin.ContextMenuContent$MenuItem‌​mContainer.doSelect(‌​ContextMenuContent.j‌​ava:1405) 在 com.sun.javafx.scene.control.skin.ContextMenuContent$MenuItem‌mContainer.lambda$cr‌​eateChildren$343(Con‌​textMenuContent.java‌​:1358)

【问题讨论】:

  • 这是我的文本文件 J. Cole//Lost Ones//嘻哈//24.66//3000Erykah Badu//时间在浪费//Neo-Soul//24.66//4000Common//生命之书//嘻哈//24.66//2000CommonGround//dasdsad //asdsadsad//24.66//3000hoop//hoola//me//44545.0//45566
  • 发布堆栈跟踪
  • 此错误跟踪对您发布的代码没有任何作用,因此请发布您的整个代码,否则无法判断它有什么问题。

标签: java javafx tableview


【解决方案1】:

此错误跟踪对您发布的代码没有任何作用,但无论如何您的输入文件甚至是错误的。

您的文件中有意外字符。第四行“300‌​0”和第五行“44‌​545.0”都包含:

你可以在ideone查看这个:

String str1 = "300‌​0";
String str2 = "44‌​545.0";

str1.chars().forEach(c -> System.out.println((char)c + " " + (int) ((char)c)));
System.out.println("");
System.out.println("--------------------");
str2.chars().forEach(c -> System.out.println((char)c + " " + (int) ((char)c)));

输出(第一列是字符,第二列是字符代码):

3 51
0 48
0 48
‌ 8204
​ 8203
0 48
--------------------
4 52
4 52
‌ 8204
​ 8203
5 53
4 52
5 53
. 46
0 48

【讨论】:

  • 谢谢大家的回答,但是好像不行,上面的loadFile函数代码正确吗?
  • 请使用异常跟踪更新问题。
  • 大家好,在异常跟踪下方
猜你喜欢
  • 2020-02-16
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 2013-07-28
  • 1970-01-01
  • 1970-01-01
  • 2011-08-03
相关资源
最近更新 更多