当前位置: 首页 > 知识库问答 >
问题:

如何添加数据从一个文本文件到ComboBox在JavaFX?

佴阳曦
2023-03-14

我在场景生成器中创建了一个组合框,我想用文本文件中的数据填充他(例如。Text.txt):

公共类ToDoListController实现初始化{

@FXML
private ComboBox<?> eventsSelector;

如何做到这一点?

非常感谢你!

两个解决方案:1。

@FXML私有组合框事件选择器;

@Override
public void initialize(URL location, ResourceBundle resources) {
      List<String> myList;
      try {
        myList = Files.lines(Paths.get("path of my text file")).collect(Collectors.toList());
        eventsSelector.setItems(FXCollections.observableArrayList(myList));
    } catch (IOException e) {
        System.out.println("Don t find file");
    }

} 2.

    //Read items from txt File
    try {
        BufferedReader br = new BufferedReader(new 
        FileReader("path of my text file"));
        StringBuilder sb = new StringBuilder();
        String line = br.readLine();

        while (line != null) {
            //Add Item
            eventsSelector.getItems().add(line);

            sb.append(line);
            line = br.readLine();
        }
        br.close();
    } catch (IOException e) {
        System.out.println("Don t find file");

    }

共有2个答案

华瀚漠
2023-03-14

我为您编写了一些代码,这应该适用于您:

public class YourController {
//Combobox
@FXML
ComboBox<String> combobx;

//Initialize FXML
@FXML
public void initialize() throws IOException {
    //Read items from txt File
    BufferedReader br = new BufferedReader(new FileReader("/items.txt"));
    try {
        StringBuilder sb = new StringBuilder();
        String line = br.readLine();

        while (line != null) {
            //Add Item
            combobx.getItems().add(line);

            sb.append(line);
            line = br.readLine();
        }
    } finally {
        br.close();
    }

    //Default Selection first item
    combobx.getSelectionModel().select(0);
}
}

在这种情况下,txt文件必须位于项目的根目录中。

吕德业
2023-03-14

因为您想从添加内容。txt文件组合框中的项目是字符串,因此您可以更改为:

@FXML
private ComboBox<String> eventsSelector;

然后需要一个要添加到组合框的元素列表

List<String> myList = Files.lines(path).collect(Collectors.toList());
comboBox.setItems(FXCollections.observableArrayList(myList));

 类似资料:
  • 我正试图找出如何从如下格式的文本文件中读取数据: 1.0,8.0 4.0,3.0 6.0,0.0 3.0,5.0 在myNumbers1中添加每行的第一个元素,在myNumbers2中添加第二个元素,如下所示: double[]myNumbers1={} double[]myNumbers2={}; 要得到 double[]myNumbers1={1.0,4.0,6.0,3.0}<双[]myNum

  • 基本的问题是在多个文本文件中添加一些公共数据。我编写的SAS程序的输出是文件夹中的许多文本文件,比如30到50个文本文件,现在我必须在每个文件的顶部添加一个手机号码。现在,我通过手动复制号码,然后打开文本文件,然后粘贴号码来实现这一点。有人能给我推荐一种替代方法吗?可能是SAS程序或类似的东西。 提前谢谢。

  • val file=header.unionall(lines).todf()

  • 假设我在同一目录中有9个.txt文件。price1.txt价格2.txt价格3.txt是来自不同位置的价格表,行和列名称相应地是经度和海拔高度。year4,5,6.txt和dis7,8,9.txt是与文本1中相同位置的年份和折扣表。 我想创建一个新的数据框,其中每列都是价格、年份、折扣的列表,来自文本1-9,具有相应的经度和姿态。 我能够使用 要读取文件的名称 我能够使用 将每个文件放在一起。 但

  • 我有以下代码: null null 我想在它周围添加一个小框,并且为了更好地向大家展示我在寻找什么样的输出,那么最后我想要这样: 所以,我现在缺少的是 与黑色,我不希望ox填充 ,它应该与上面的图片大约相同的高度和宽度。把它看作是一个站点的预加载器。在页面的中间,一个带有 徽标的小型/中型框显示在其内部,如上面所示。 注意:动画应该在盒子里面工作,而不应该去盒子外面,所以当你运行上述代码时的动画应

  • 问题内容: 在我的在线计算机科学课上,我必须编写一个程序来确定太阳系中每个行星的表面重力。除了一个方面,我几乎已经掌握了它的所有方面。我需要使用单独的方法将表面重力写入文件。这是我目前的方法: 我的问题是,当我将其写入文件时,它将覆盖先前的值。我如何获得它包括所有的价值。如果有帮助,这是我的全部代码: 问题答案: 这样做是为了创建带有追加模式的作品: