0
私はJavaFXで作業する方法を理解しようとしていますが、異なる色でtableViewの異なる行を色付けする方法については苦労しています。TableViewの行を色付けするにはどうすればいいですか?
ラジオボタンによって異なるデータを取得するテーブルビューのシーンがあります。 1つのオプションは、色のないデータを表示し、他の色は、その数の大きさに応じて表示されます。
欠陥のある方法:
private void drawTableColor(){
//tableColumns[0] = new TableColumn("Spieltag");
//tableColumns[0].setCellValueFactory(new PropertyValueFactory<MyClass, String>("day"));
/*tableColumns[0].setCellFactory(column -> {
return new TableCell<MyClass,String>(){
@Override
protected void updateItem(String s, boolean empty){
super.updateItem(s, empty);
int i = Integer.parseInt(s);
System.out.println("TEST " +i);
if (i<=3){
setTextFill(Color.BLUE);
} else if (i==4){
setTextFill(Color.AZURE);
} else if (i <= 6){
setTextFill(Color.GREEN);
} else if (i == 16){
setTextFill(Color.ORANGE);
} else if (i>16){
setTextFill(Color.RED);
}
}
};
});*/
ObservableList<MyClass> data2 = FXCollections.observableArrayList(data);
tableView.setItems(null);
tableView.setItems(data2);
}
アウトは、一部は私に迷惑を与えているコメントしました。行に色を付けることも、この列に内容を表示することもありません。非常に最初の行がコメントされている場合、updateItem部分はスキップされます。 私が間違っていることは何ですか?
のスタイルを設定する必要があります(少なくとも)セルがInteger.parseInt(s)を実行しようとする前に空でないことを確認してください(そうしないと、null値を解析しようとします)。それでも動作しない場合は、MyClassのコードを投稿する必要があります。 –
ありがとうございました。 –