2017-09-28 12 views
1

コントローラー・コードで表示する前に値を変更しテーブルビューのJavaFXの

@Override 

public void initialize(URL url, ResourceBundle rb) { 

    try { 
      Connection con = db.connect(); 

      list = FXCollections.observableArrayList(); 
      ResultSet rs = con.createStatement().executeQuery("Select * from Student"); 
      while (rs.next()) { 
       list.add(new Student(rs.getInt(1), rs.getString(2),new java.util.Date(rs.getDate(3).getTime()))); 

      } 
     } catch (SQLException ex) { 
      Logger.getLogger(DisplayAllStudentController.class.getName()).log(Level.SEVERE, null, ex); 
     } 

    studentID.setCellValueFactory(new PropertyValueFactory<>("studentID")); 

    name.setCellValueFactory(new PropertyValueFactory<>("name")); 

    admissionDate.setCellValueFactory(new PropertyValueFactory<>("admissionDate")) 

    tableView.setItems(null); 

    tableView.setItems(list); 

私はテーブルビューに表示する前に、データに何らかの操作をしたいSWINGスイングで

tableRow[3] = DateConverter.toString(c.getAdmissionDate()); 

私のよう

このように、それは完全に働いた。

しかし、tableview javafxの操作方法はわかりません。

+1

実装する予定の結果は何ですか? – Suncatcher

+0

私はデータベースの値にいくつかの操作を実行して、ツリービューのテーブルに表示するにはフィールド1のデータベースの値を表示する:100と私は200(この変更はデータベース/一時的な変更の値に保存されません)値ではありません。 – kar

答えて

1

CellFactoryを指定の列に追加することをお勧めします(CellValueFactoryと混同しないでください)。あなたはどのようなデータでやりたい正確に何を言及していないが、あなたはあなたのようなクラスを書くことができ、独自の方法で、文字列に日付をフォーマットする場合:

public class LocalDateCellFactory<T> implements Callback<TableColumn<T, LocalDate>, TableCell<T, LocalDate>> { 

    @Override 
    public TableCell<T, LocalDate> call(TableColumn<T, LocalDate> col) { 
     return new TableCell<T, LocalDate>() { 

      @Override 
      protected void updateItem(LocalDate item, boolean empty) { 
       super.updateItem(item, empty); 
       if ((item == null) || empty) { 
        setText(null); 
        return; 
       } 

       setText(item.format(...yourOwnFormat...)); 
      } 

     }; 
    } 

} 

...そしてちょうどどこでもそれを使用しますテーブルビューに日付を表​​示するとします。

admissionDate.setCellFactory(new LocalDateCellFactory<>()); 
+0

私はlastBillPayedの日付とamountの2つのテーブルの列1を持っているとします。 (現行日の基本金額MINUS lastBillPayed date)次に、第2フィールドでの合計計算額を割り当てます。 – kar

+0

これは元のコメントではなく新しい質問のようです。その場合は、回答を受け入れ、新しい質問として投稿してください。 (コメントにコード例を投稿するのは難しい)そしてそうするときは、問題をより正確に指定してください。私はあなたが達成したいことを理解していますが、私はかなり理解していません、問題は何ですか?サンプルコードを投稿して、どこに行き詰まっていて何がうまくいかないか教えてください。 – tomorrow

+0

明日は私のこの問題を確認するのを手伝ってくださいhttps://stackoverflow.com/questions/46551764/tableview-how-to-get-and-set-value-in-column – kar

関連する問題