在JavaFx中设置listview

时间:2017-12-03 08:32:39

标签: java javafx

我知道以前曾经问过这个问题,但老实说,我从别人的问题中得不到足够的答案。感谢您抽出宝贵时间阅读本文。我不能得到编译的视图来显示列表视图中的数据,我不知道我做错了什么。我使用java Scene Builder,并将此类设置为控制器。可以在需要时提供更多信息

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);
        }
    }
}

编辑:列表视图显示正确的数据,它只是在它之后显示。

1 个答案:

答案 0 :(得分:0)

原来我的一些场景查看器设置有误。不得不改变我的固定单元格大小和不透明度,我出于某种原因将其置于零。