【发布时间】:2017-07-25 11:23:57
【问题描述】:
@FXML private javafx.scene.control.TableView<User> userTableView;
@FXML private TableColumn<User, Image> isActiveColumn;
@FXML private TableColumn<User, String> userNameColumn;
@FXML private TableColumn<User, String> taskColumn;
@FXML private TableColumn<User, String> firstNameColumn;
@FXML private TableColumn<User, String> lastNameColumn;
@FXML private TableColumn<User, String> editDeleteColumn;
public static ObservableList<User> data;
public void initialize() throws SQLException {
try {
data = FXCollections.observableArrayList();
addUsers();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void clickAddUser() throws Exception{
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/fxml/addUser.fxml"));
Parent root = fxmlLoader.load();
Stage stage = new Stage();
stage.setScene(new Scene(root));
stage.show();
}
//tablewiev'e kullanici eklenmesi
public void addUsers() throws SQLException {
try {
List<User> userList = Main.dbManager.getUserList();
if(userList.size() != 0){
for (int i=0; i<userList.size(); i++){
User aUser = userList.get(i);
data.add(aUser);
}
}
isActiveColumn.setMinWidth(200);
isActiveColumn.setCellFactory(new Callback<TableColumn<User, Image>, TableCell<User, Image>>() {
public TableCell<User, Image> call(TableColumn<User, Image> param) {
final ImageView imageView = new ImageView();
imageView.setFitHeight(50);
imageView.setFitWidth(50);
TableCell<User, Image> cell = new TableCell<User, Image>(){
@Override
protected void updateItem(Image item, boolean empty) {
if(item != null)
imageView.setImage(new Image("images/if_User-green_85406.png"));
}
};
cell.setGraphic(imageView);
return cell;
}
});
isActiveColumn.setCellValueFactory(new PropertyValueFactory<User, Image>("image"));
userNameColumn.setMinWidth(200);
userNameColumn.setCellValueFactory(new PropertyValueFactory<User, String>("aUsername"){
@Override
public ObservableValue<String> call(TableColumn.CellDataFeatures<User, String> param) {
return new ReadOnlyObjectWrapper(param.getValue().getUsername());
}
});
taskColumn.setMinWidth(200);
taskColumn.setCellValueFactory(new PropertyValueFactory<User, String>("aTask"){
@Override
public ObservableValue<String> call(TableColumn.CellDataFeatures<User, String> param) {
return new ReadOnlyObjectWrapper(param.getValue().getTask());
}
});
firstNameColumn.setMinWidth(200);
firstNameColumn.setCellValueFactory(new PropertyValueFactory<User, String>("aFirstname"){
@Override
public ObservableValue<String> call(TableColumn.CellDataFeatures<User, String> param) {
return new ReadOnlyObjectWrapper(param.getValue().getFirstname());
}
});
lastNameColumn.setMinWidth(200);
lastNameColumn.setCellValueFactory(new PropertyValueFactory<User, String>("aLastname"){
@Override
public ObservableValue<String> call(TableColumn.CellDataFeatures<User, String> param) {
return new ReadOnlyObjectWrapper(param.getValue().getLastname());
}
});
editDeleteColumn.setMinWidth(200);
editDeleteColumn.setCellValueFactory(new PropertyValueFactory<User, String>("editDeleteCol"));
userTableView.setItems(data);
} catch (SQLException e) {
e.printStackTrace();
}
}
public ObservableList<User> getData(){
return data;
}
}
如果是主动或被动,我想添加图像。我添加了主动或被动状态布尔值。我不知道它会如何,但在此之前我尝试添加静态图像 updateItem 方法从未被调用过。你能帮忙吗?
【问题讨论】:
标签: image javafx tableview add