2017-06-08 26 views
1

我創建場景生成器組合框,我想填充他從一個文本文件(如TEXT.TXT)數據:如何將文本文件中的數據添加到JavaFX中的ComboBox中?

公共類ToDoListController實現Initializable {

@FXML 
private ComboBox<?> eventsSelector; 

如何做到這一點?

非常感謝!

兩個解決方案:1。

@FXML 私人組合框eventsSelector;

@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"); 

    } 
+0

我的答案是否適合你?或者你需要別人嗎? – Developer66

+0

謝謝!我會嘗試明天。我保持聯繫! – Daniel

+0

那會很好。如果你有問題,請寫信給我。 – Developer66

回答

0

既然你想從一個.txt文件添加內容在ComboBox的項目是String這麼你可以改成這樣:

@FXML 
private ComboBox<String> eventsSelector; 

然後你需要一個你想添加到ComboBox<String>的元素列表,然後你可以簡單地通過以下方式添加它們:

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

我也更喜歡使用Java8流,但我儘可能簡單地寫,以便更多的理解。但是,如果@丹尼爾熟悉流是的,這是更好的方法。 – Sunflame

+0

謝謝兩位!我不明白方法「線(路徑)」...... – Daniel

+0

這可能可以幫助您瞭解該行代碼:https://www.mkyong.com/java8/java-8-stream-read-a-文件一行一行/ – Sunflame

0

我寫了一些代碼對你來說,這應該爲你工作:

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文件必須在這種情況下,在項目的根目錄下。

+1

這個解決方案也適用。謝謝! – Daniel

相關問題