0
これは以前に尋ねられたことは知っていますが、正直なところ他の質問から十分ではありません。これを読んでいただきありがとうございます。私はリストビューでデータを表示するためにコンパイルされたビューを取得することはできません、そして何が間違っているのかわかりません。私はjava Scene Builderを使用し、このクラスをコントローラとして設定します。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);
}
}
}
編集を必要なときに/場合の詳細情報を提供することができます:リストビューは正しくに行くのデータを示している、それだけでその存在の後に表示イマイチ。
なぜ 'String'変数のフィールドを使用するのですか? 'initialize'メソッドでhte文字列をアセンブルする以外は、それらを使用していないようです。この目的のためには、局所変数で十分である。さらに、whileループと次のステートメントについて新しいスコープを導入することは不要です。 – fabian