2013-09-27 2 views
3

시나리오 : EditClientDeatils.fxm l이라는 부모 창과 이에 대해 TableView이 있습니다. UserDetails.fxml라는 다른 창을 만들고이 두 번째 창에서 편집 한 후이 FXML 필드에 행 데이터를 채우는 것으로이 행 결과를 편집하고 있습니다. 최신 데이터로 상위 테이블을 업데이트해야하는 경우 저장합니다. 테이블을 전혀 새로 고치지 않습니다. 그러나 내가 테이블을 디버깅 할 때 최신 데이터로 업데이트되고 Window에 표시되지 않습니다. 그래서 다른 컨트롤러에서 테이블보기를 업데이트 할 수 있습니까?상위 테이블 뷰 업데이트 하위 fxml에서

하위 창에서 이와 같이 부모를로드합니다. 내가

을 디버깅하고 때

@Override 공공 무효의 초기화 (URL의 URL, ResourceBundle을의 RB) {

fNameCol.setCellValueFactory(
      new PropertyValueFactory<AtUser, String>("clientFirstName")); 
    lNameCol.setCellValueFactory(
      new PropertyValueFactory<AtUser, String>("clientLastName")); 
    addressCol.setCellValueFactory(
      new PropertyValueFactory<AtUser, String>("clientAddress")); 
    mobileCol.setCellValueFactory(
      new PropertyValueFactory<AtUser, String>("clientMobileNumber")); 
    emailCol.setCellValueFactory(
      new PropertyValueFactory<AtUser, String>("clientEmailID")); 
    catagoryCol.setCellValueFactory(
      new PropertyValueFactory<AtUser, String>("clientTypeCode")); 
    genderCol.setCellValueFactory(
      new PropertyValueFactory<AtUser, String>("gender")); 

    editSaveAction.setSortable(false); 

    editSaveAction.setCellValueFactory(
      new Callback<TableColumn.CellDataFeatures<AtUser, Boolean>, 
      ObservableValue<Boolean>>() { 

     @Override 
     public ObservableValue<Boolean> call(TableColumn.CellDataFeatures<AtUser, Boolean> p) { 
      return new SimpleBooleanProperty(p.getValue() != null); 
     } 
    }); 

    editSaveAction.setCellFactory(
      new Callback<TableColumn<AtUser, Boolean>, TableCell<AtUser, Boolean>>() { 

     @Override 
     public TableCell<AtUser, Boolean> call(TableColumn<AtUser, Boolean> p) { 
      return new ClientButtonCell(customerTable); 
     } 

    }); 
    // Add filtered data to the table 

    customerTable.setItems(filteredData); 

    // Listen for text changes in the filter text field 
    filterField.textProperty().addListener(new ChangeListener<String>() { 
     @Override 
     public void changed(ObservableValue<? extends String> observable, 
       String oldValue, String newValue) { 

      updateFilteredData(); 
     } 
    }); 

} 

:

FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("EditClientDetails.fxml")); 
       EditClientDetailsController fooController = (EditClientDetailsController) fxmlLoader.getController(); 
       try { 
        fxmlLoader.load(); 
       } catch (IOException ex) { 
        Logger.getLogger(NewUserController.class.getName()).log(Level.SEVERE, null, ex); 
       } 

그리고 내 부모 클래스의

코드 아래 가진 방법을 초기화
customerTable.setItems(filteredData); 

filteredData에 내 req가 포함되어 있습니다. uired 데이터가 있지만 Window에 오지는 않습니다. 나는 무엇이든을 놓친 경우에 지적한다.

+0

즉, 새로 고침하지 않으시겠습니까? – Magcus

+0

예 .. 상쾌하지 않다 – Firu

답변

0

나는 똑같은 문제가 있었고,이 작업이 그것을 되살리는 것을 발견했다.

table.getColumns().get(0).setVisible(false); 
table.getColumns().get(0).setVisible(true); 

테이블 항목 목록을 수정 한 후.

+0

:(나를 위해 일하지 않습니다 .. – Firu

+0

코드를 게시하면 내가 살펴볼 수 있습니까? 모든 것을 의미합니다. – Magcus

관련 문제