これは私が現在持っているものです。JavaFX TableView:列データを浮動小数点形式にしてソート可能で、フォーマットする/文字列として表示することはできますか?
fileSizeColumn.setCellValueFactory(cellData -> {
SimpleStringProperty stringProperty = new SimpleStringProperty();
float sizeInMegabytes = (float)cellData.getValue().fileSizeProperty().getValue()/1024/1024;
sizeInMegabytes = round(sizeInMegabytes, 2);
stringProperty.setValue(sizeInMegabytes + "mb");
return stringProperty;
});
fileSizeColumn.setComparator((t1, t2) -> {
float f1 = Float.parseFloat(t1.replaceAll("[^0-9.]",""));
float f2 = Float.parseFloat(t2.replaceAll("[^0-9.]",""));
return Float.compare(f1,f2);
});
だから、もともとlong
(それはバイト単位です)で、ファイルサイズのプロパティがあります。私のテーブルでこれを取得するには、メガバイトに変換し、2桁の小数点以下を丸めて、最後に"mb"
を追加します。私は最後に"mb"
を取り除くカスタムコンパレータを作った。私は最終的にこれはKBとGBのサイズに応じて、比較器clunky(endsWith("mb")
endsWith("kb")
これを行う場合、これを行う場合)を行います。
私はテーブルにlongをSimpleLongProperty
として追加しますが、表示方法を何らかの形で示しています。
「ここでは、並べ替えに使用する必要がある実際の値の裏には値があり、これを数値で割り、最後に文字列「mb」を追加する必要がありますそれを実際に表示しているときは?
おかげで
これはちょうど私がそれが働くことを期待した方法ですが、私は何とか最後のラップで間違っていました。あなたの答えをありがとう、それは今完全に働いている – trouserboycott