2013-06-10 4 views
0

여러 클래스의 데이터로 테이블 뷰를 채우려고합니다. 아래 코드는 테이블에 데이터를 채우지 만 모든 열에 대해 새로운 행을 생성합니다. 여기 테이블 뷰에서 여러 클래스의 데이터 표시

코드입니다 :

try { 
     col_Result_marks.setCellValueFactory(new PropertyValueFactory("MARKS")); 
     col_Result_course.setCellValueFactory(new PropertyValueFactory("NAME")); 
     col_Result_tstdt.setCellValueFactory(new PropertyValueFactory("TSTDT")); 
     DBAccess db = new DBAccess(); 
     db.DBConn("SELECT blah blah..."); 
     ObservableList dataset = FXCollections.observableArrayList(); 
     while(db.resultSet.next()){ 
      Result rslt = new Result(); 
      rslt.setMARKS(db.resultSet.getInt("MARKS")); 
      Test tst = new Test(); 
      tst.setTSTDT(db.resultSet.getDate("TST_DT")); 
      Course crs = new Course(); 
      crs.setNAME(db.resultSet.getString("SUB")); 
      dataset.addAll(rslt,tst,crs); 
     } 
     db.ConnClose(); 
     tbl_Result.setItems(dataset); 

    } 

및 출력은 비슷한 다음과 같습니다

rslt tst crs 
+0

SQL 결과 당 세 개의 오브젝트를 데이터 세트에 추가하므로 JavaFX가 세 행을 추가합니다. 아마도 MARKS, rsr 및 src 속성을 가진 단일 클래스를 추가하는 것이 좋습니다. – sarcan

+0

@sarcan 쿼리 출력을위한 별도의 클래스를 만드는 것이 그것이 가능하다면 가능하지 않습니다. 나는 각 주요 실체마다 별도의 반을 가지고있다. 이 구현에 대한 제안? 나는 javafx에 처음이므로 내 무지를 용서해줍니다. –

답변

0

대신 세 개의 객체를 얻는 :

<null> <null> rslt 
<null> tst <null> 
crs <null> <null> 

내가 출력이되고 싶어 문자열로 테이블보기를 만들 수 있습니다.

TableView<ObservableList<String>> table = new TableView<>(); 

그리고 문자열을 얻기 위해 열을 정의 :이처럼 당신이 테이블보기를 업데이트 할 때

for (int i = 0; i < NUM_COLUMNS; i++) { 
     TableColumn<ObservableList<String>, String> col = new TableColumn<>("Col#"+i); 
     final int finalI = i; 
     col.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList<String>,String>, ObservableValue<String>>() {   
      @Override 
      public ObservableValue<String> call(CellDataFeatures<ObservableList<String>, String> cdf) {  
       return new SimpleStringProperty(cdf.getValue().get(finalI)); 
      } 
     }); 
     table.getColumns().add(col); 
    } 

그래서, 당신은 세 가지 개체를 기반으로 문자열의 목록을 구축 할 수 있습니다.

희망이 있습니다.

+0

나를 위해 슬프게도 작동하지 않습니다. 그것은 말합니다 : 타입 콜백은 일반적이지 않습니다; , String>, ObservableValue > 인수로 매개 변수화 할 수 없습니다. – Cappuccino90

관련 문제