java - 如何在 tableView 列中将浮点值更改为评级星(jfoenix 的评级)表示?
问题描述
我正在尝试将我的 tableView 的评级列的表示(请看图 1)
更改为 jfoenix 库的评级星以获得更好的表示
这里是我的表视图的代码(在控制器中):
@FXML
public void initialize(URL url, ResourceBundle rb) {
nom_client.setCellValueFactory(new PropertyValueFactory<Review, String>("nom_client_review"));
date_review.setCellValueFactory(new PropertyValueFactory<Review, String>("date_review"));
descrip_review.setCellValueFactory(new PropertyValueFactory<Review, String>("description_review"));
rating.setCellValueFactory(new PropertyValueFactory<Review, Float>("rating"));
try {
ObservableList<Review> reviewlist = ReviewCrud.getAllRecords();
populateTable(reviewlist);
} catch (ClassNotFoundException ex) {
Logger.getLogger(AfficherReview2Controller.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(AfficherReview2Controller.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void populateTable(ObservableList<Review> reviewlist) {
reviewtable.setItems(reviewlist);
}
请注意,我不允许使用 simplefloatproperty,这就是为什么我在Review类中的评分设置为浮动
在我用来从数据库获取数据的代码下方:
public static ObservableList<Review> getAllRecords() throws ClassNotFoundException, SQLException {
Connection cnnx = ReviewConnection.getInstance().getCnx();
String requete = "SELECT * FROM review_client ";
try {
Statement st = cnnx.createStatement();
ResultSet rs = st.executeQuery(requete);
ObservableList<Review> reviewList = getReviewObjects(rs);
return reviewList;
} catch (SQLException ex) {
System.err.println(ex.getMessage());
throw ex;
}
}
private static ObservableList<Review> getReviewObjects(ResultSet rs) throws ClassNotFoundException, SQLException {
try {
ObservableList<Review> reviewList = FXCollections.observableArrayList();
while (rs.next()) {
Review r = new Review();
r.setNom_client_review(rs.getString("nom_client_review"));
r.setDate_review(rs.getString("date_review"));
r.setDescription_review(rs.getString("description_review"));
r.setRating(rs.getFloat("rating"));
reviewList.add(r);
}
return reviewList;
} catch (SQLException ex) {
System.err.println(ex.getMessage());
throw ex;
}
}
我唯一的目标是将评级列的浮点值转换为 jfoenix 的星星
,
如果有人知道如何请帮助我
,将不胜感激
解决方案
你看过这个解决方案吗:Turn a number into star rating display using jQuery and CSS
$.fn.stars = function() {
return $(this).each(function() {
// Get the value
var val = parseFloat($(this).html());
// Make sure that the value is in 0 - 5 range, multiply to get width
var size = Math.max(0, (Math.min(5, val))) * 16;
// Create stars holder
var $span = $('<span />').width(size);
// Replace the numerical value with stars
$(this).html($span);
});
}
此代码在 jQuery 中,但您可以轻松地遵循逻辑。
推荐阅读
- python-3.x - 从 Python 中的列中删除 $ 和逗号符号
- javascript - 数组与三个主要对象比较
- c# - C#匿名函数日志方法体
- google-cloud-platform - 谷歌云存储+功能:大规模系统架构
- javascript - 如何在普通函数中编写箭头函数
- machine-learning - 为什么随机森林比 XGBoost 提供更好的结果?
- flutter - 有没有办法可以在 .toList() 调用后将小部件添加到我的列表中?
- javascript - 当单击关注,取消关注按钮时,如何仅在 Vuetify.js 中反应和停用该按钮
- reactjs - 将 React 上下文提供程序数组转换为嵌套结构
- java - 获取带有时区的日期格式作为添加时间