在做大作业的过程中用了javafx,然后想实现类似股票的颜色列表,一个tableview,如果股票涨了就用红色,跌了就用绿色。
一开始一直以为是TableCell已经被TextField重写,所以产生了奇怪的bug
结果写了很久找了很多办法但是都有异常,最后请教大神才知道是一行中格式有double和string两种,所以Item要用Object这个类就好了
最后附上重写的TableCell
private class TaskCellFactory implements Callback<TableColumn<Task, Object>, TableCell<Task, Object>> {
@Override
public TableCell<Task, Object> call(TableColumn<Task, Object> param) {
TextFieldTableCell<Task, Object> cell = new TextFieldTableCell<Task, Object>() {
ObservableValue ov;
@Override
public void updateItem(Object item, boolean empty) {
super.updateItem(item, empty);
if (!isEmpty()) {
double up = Double.valueOf(this.getTableView().getColumns().get(3).getCellData(getIndex()).toString());