我正在使用controlsfx http://fxexperience.com/controlsfx/features/#rating的评级功能。我试图从每个文件的数据库中获取评级值。虽然返回的值没有设置在星星上。
这是我的代码:
File apps = new File("D:\\SERVER\\Server Content\\Apps");
File[] applist = apps.listFiles();
ArrayList<File> applistar = new ArrayList<>();
rathboxar = new ArrayList<>();
for (File f : applist) {
applistar.add(f);
}
try {
for (File file : applistar) {
if (!file.getName().equals("icons")) {
String appname = file.getName();
System.out.println("app name:" + appname);
*String strat = downloadcontroller.getThatRating(appname);* //retrieving rating value for each file
System.out.println("Rating string:" + strat);
double ratval = Double.parseDouble(strat);
rating = new Rating();
rating.setPartialRating(true);
*rating.setRating(ratval);*// setting the value on stars
rating.setMaxSize(100, 20);
ratinghbox = new HBox();
ratinghbox.getChildren().add(rating);
rathboxar.add(ratinghbox);
}
}
} catch (RemoteException ex) {
Logger.getLogger(HomeUI_2Controller.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(HomeUI_2Controller.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(HomeUI_2Controller.class.getName()).log(Level.SEVERE, null, ex);
}
File tempfile2 = new File("D:\\client\\Temp\\appicons");
File[] filelist1 = tempfile2.listFiles();
gridpane.setAlignment(Pos.CENTER);
gridpane.setPadding(new Insets(20, 20, 20, 20));
gridpane.setHgap(20);
gridpane.setVgap(20);
ColumnConstraints columnConstraints = new ColumnConstraints();
columnConstraints.setFillWidth(true);
columnConstraints.setHgrow(Priority.ALWAYS);
gridpane.getColumnConstraints().add(columnConstraints);
int imageCol = 0;
int imageRow = 0;
for (int i = 0; i < filelist1.length; i++) {
//System.out.println(filelist1[i].getName());
image = new Image(filelist1[i].toURI().toString());
pic = new ImageView();
pic.setFitWidth(130);
pic.setFitHeight(130);
pic.setImage(image);
vb = new VBox();
*vb.getChildren().addAll(pic, (Button) btnar.get(i), (HBox) rathboxar.get(i));*//adding rathboxar to vbox
gridpane.add(vb, imageCol, imageRow);
GridPane.setMargin(pic, new Insets(2, 2, 2, 2));
imageCol++;
// To check if all the 3 images of a row are completed
if (imageCol > 2) {
// Reset Column
imageCol = 0;
// Next Row
imageRow++;
}
}
答案 0 :(得分:1)
这是一个错误:source code for the skin相当清楚,当partialRating
设置为true
时,它无法处理更新用户界面当评级以编程方式改变时。
您应该在https://bitbucket.org/controlsfx/controlsfx/issues?status=new&status=open
提交问题报告