2017-12-03 186 views
0

我知道這已經被問過,但我真的沒有從其他問題得到足夠的。感謝您的閱讀時間。我不能讓編譯的視圖顯示列表視圖中的數據,我不知道什麼即時通訊做錯了。我使用java場景生成器,並將此類設置爲控制器。可以在需要時提供更多信息在JavaFx中設置列表視圖

import org.bson.Document; 
import com.mongodb.MongoClient; 
import com.mongodb.client.MongoCollection; 
import com.mongodb.client.MongoCursor; 
import com.mongodb.client.MongoDatabase; 
import javafx.collections.FXCollections; 
import javafx.collections.ObservableList; 
import javafx.fxml.FXML; 
import javafx.scene.control.ListView; 

    public class DeanClassDbShowController { 
    //To hold the output, then the second one just in case 
    String test =""; 
    String combiner =""; 
    @FXML private ListView<String> dbList; 
    private final ObservableList<String> courses = FXCollections.observableArrayList(); 

    public void initialize() { 
     MongoClient mongoClient = new MongoClient("localhost", 27017); 
     MongoDatabase database = mongoClient.getDatabase("prog3"); 
     MongoCollection<Document> collection = database.getCollection("Courses"); 
     MongoCursor<Document> cursor = collection.find().iterator(); 
     { 
      while(cursor.hasNext()) 
      { 
       Document oldDoc = cursor.next(); 
       test = oldDoc.getString("courseName"); 
       combiner= ("Class: "+ test); 
       test = oldDoc.getString("courseNumber"); 
       combiner+= (" Class Number: "+test); 
       test = oldDoc.getString("instructor"); 
       combiner+= (" Instructor: "+ test); 
       test = oldDoc.getInteger("students").toString(); 
       combiner+= (" Students: "+ test); 
       courses.add(combiner); 
       //dbList.getItems().add(combiner);   
      } 
      dbList.setItems(courses); 
      //dbList = new ListView(courses); 
     } 
    } 
} 

編輯:listview正在顯示正確的數據,它只是沒有顯示在它後面。

+0

爲什麼要爲字符串變量使用字段?你似乎沒有使用它們,除了在'initialize'方法中組裝字符串。爲此目的,局部變量就足夠了。此外,圍繞'while'循環引入一個新的範圍和下面的語句似乎是不必要的。 – fabian

回答

0

原來我有一些場景查看器設置錯誤。不得不改變我的固定細胞大小和不透明度,出於某種原因,我把它歸零。