0
이 질문은 이전에 묻지 만, 다른 질문에 대해서는 충분히 이해하지 못했습니다. 이것을 읽어 주셔서 감사합니다. 나는 목록보기에서 데이터를 보여주기 위해 컴파일 된 뷰를 얻을 수 없다. 그리고 Im이 무엇을 잘못하고 있는지 확신하지 못한다. 메신저 자바 씬 빌더를 사용하고이 클래스를 컨트롤러로 설정하십시오. 필요한 경우 더 많은 정보를 제공 할 수 있습니다.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' 메쏘드에서 hte 문자열을 어셈블하는 것을 제외하고는 그것들을 사용하는 것처럼 보이지 않습니다. 이 목적을 위해 지역 변수가 충분할 것입니다. 게다가 while 루프와 다음 문장에 새로운 범위를 도입하는 것은 불필요한 것처럼 보입니다. – fabian