【发布时间】:2017-10-26 01:26:28
【问题描述】:
我正在尝试根据 ListView 上的用户状态设置不同的颜色来塑造形状。但是当我滚动 ListView 时,其他一些单元格也会改变其形状作为示例:
我需要这样的形状(每个矩形都在一个单元格内):
但经过一些卷轴后,它们仍然是这样的:
这是我的代码的一部分:
userListView.setCellFactory(userCell -> new UserCellController());
类 UserCellController:
public class UserCellController extends ListCell<UserPopulate> {
@FXML
private Rectangle statusShape;
private FXMLLoader mLLoader;
@Override
protected void updateItem(UserPopulate user, boolean empty) {
super.updateItem(user, empty);
if(empty || user == null) {
setText(null);
setGraphic(null);
} else {
if (mLLoader == null) {
mLLoader = new FXMLLoader(getClass().getResource("/view/userCell.fxml"));
mLLoader.setController(this);
try {
mLLoader.load();
} catch (IOException e) {
e.printStackTrace();
}
}
if ( user.getUserStatus().toString().equals("3") ) {
statusShape.setFill(Color.RED);
}
setText(null);
setGraphic(cellPane);
}
}
}
我只需要红色形状的第二个单元格(用户状态 == 3)。
【问题讨论】: