JavaFX TableView - centrer le Contenu d'une Colonne de Table
J'ai un gros Problème.
J'essaie de centrer le Contenu d'un TableColumn dans un TableView.
J'ai déjà essayé tout ce que j'ai trouvé sur le net, mais vraiment rien de ce qui a fonctionné!
Il y a quelqu'un qui a/ont le même problème? toutes les Solutions?
De l'espoir pour aider!
Edit:
Bien j'ai été en mesure de centrer le contenu d'une statique de la cellule avec ce code:
tc_customer.setCellFactory(new Callback<TableColumn<TvAccounting, String>, TableCell<TvAccounting, String>>() {
@Override
public TableCell<TvAccounting, String> call(TableColumn<TvAccounting, String> p) {
TableCell<TvAccounting, String> tc = new TableCell<TvAccounting, String>();
tc.setAlignment(Pos.CENTER);
tc.setText("SOMETEXT");
return tc;
}
});
Mais le contenu doit provenir d'une base de données et j'ai vraiment l'hépatite a aucune idée de la façon d'obtenir les données de la ObservableList Objet que j'utilise dans les TABLEVIEWNAME.setItems
méthode...
J'ai d'abord utilisé ce code:
tc_customer.setCellValueFactory(new PropertyValueFactory<TvAccounting, String>("Customer"));
mais il n'y avait aucun moyen de centre que le contenu!
Svp quelqu'un pourrait-il m'aider?
Edit:
Merci pour cette super Réponse, je l'ai fait!
Code ci-dessous:
tc_customer.setCellFactory(new Callback<TableColumn<TvAccounting, String>, TableCell<TvAccounting, String>>() {
@Override
public TableCell<TvAccounting, String> call(TableColumn<TvAccounting, String> p) {
TableCell<TvAccounting, String> tc = new TableCell<TvAccounting, String>(){
@Override
public void updateItem(String item, boolean empty) {
if (item != null){
setText(item);
}
}
};
tc.setAlignment(Pos.CENTER);
return tc;
}
});
tc_customer.setCellValueFactory(new PropertyValueFactory<TvAccounting, String>("Customer"));
MIEUX MERCI!!!
OriginalL'auteur downdrown | 2013-09-13
Vous devez vous connecter pour publier un commentaire.
CellValueFactory et CellFactory sont deux choses différentes.
CellValueFactory est utilisé pour spécifier où viennent les valeurs, alors que CellFactory spécifie comment sont-ils affichés.
Utiliser les deux en même temps. Mais dans le
setCellFactory
de code que vous devez pas nesetText
. Définir le texte sera pris en charge par leTableCell
code à l'intérieur de laupdateItem()
méthode. Cette méthode va utiliser la valeur qui est fourni à partir de la cellValueFactory " et de prendre soin de réglage à l'intérieur de son propre label.Dois-je le faire dans mon
TvAccounting
entité?C'est le point. Vous ne devriez pas besoin de déclarer le updateItem(). Il devrait fonctionner juste en retrait de la setText code ci-dessus. UpdateItem est une méthode interne dans TableCell. Vous n'aurez qu'à le remplacer si vous écrivez votre propre TableCell mise en œuvre. Ce qui n'est pas votre cas.
OriginalL'auteur Rasha