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正在顯示正確的數據,它只是沒有顯示在它後面。
爲什麼要爲字符串變量使用字段?你似乎沒有使用它們,除了在'initialize'方法中組裝字符串。爲此目的,局部變量就足夠了。此外,圍繞'while'循環引入一個新的範圍和下面的語句似乎是不必要的。 – fabian