JavaFX中TextFieldTableCell的颜色问题
2016-04-12 20:17
399 查看
在做大作业的过程中用了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());
if (up < 0) {
this.setTextFill(Color.GREEN);
}
else if (up > 0) {
this.setTextFill(Color.RED);
}else
this.setTextFill(Color.WHITE);
setText(item.toString());
}
}
};
cell.setOnMouseClicked((MouseEvent t) -> {
if (t.getClickCount() == 2) {
try {
int index = secondTable.getFocusModel().getFocusedIndex();
String id = ((DSecond) secondTable.getItems().get(index)).getIdnumber();
main.CFIRST.setCollectionID(id);
swiftController(id, new TimeFilter(timeHelper.getStart(), timeHelper.getEnd()));
} catch (IOException e) {
e.printStackTrace();
}
}
if (t.getClickCount() == 1) {
int index = secondTable.getFocusModel().getFocusedIndex();
String id = ((DSecond) secondTable.getItems().get(index)).getIdnumber();
main.CFIRST.setCollectionID(id);
try {
setGraph(id, new TimeFilter(timeHelper.getStart(), timeHelper.getEnd()));
} catch (IOException e) {
e.printStackTrace();
}
}
});
//cell.setContextMenu(taskContextMenu);
return cell;
}
}
一开始一直以为是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());
if (up < 0) {
this.setTextFill(Color.GREEN);
}
else if (up > 0) {
this.setTextFill(Color.RED);
}else
this.setTextFill(Color.WHITE);
setText(item.toString());
}
}
};
cell.setOnMouseClicked((MouseEvent t) -> {
if (t.getClickCount() == 2) {
try {
int index = secondTable.getFocusModel().getFocusedIndex();
String id = ((DSecond) secondTable.getItems().get(index)).getIdnumber();
main.CFIRST.setCollectionID(id);
swiftController(id, new TimeFilter(timeHelper.getStart(), timeHelper.getEnd()));
} catch (IOException e) {
e.printStackTrace();
}
}
if (t.getClickCount() == 1) {
int index = secondTable.getFocusModel().getFocusedIndex();
String id = ((DSecond) secondTable.getItems().get(index)).getIdnumber();
main.CFIRST.setCollectionID(id);
try {
setGraph(id, new TimeFilter(timeHelper.getStart(), timeHelper.getEnd()));
} catch (IOException e) {
e.printStackTrace();
}
}
});
//cell.setContextMenu(taskContextMenu);
return cell;
}
}
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- Web布局连载——两栏固定布局(五)
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序