我正在使用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++;
}
}
最佳答案
这是一个错误:从source code for the skin可以很明显地看到,当partialRating
设置为true
时,如果以编程方式更改评分,则它不会处理UI的更新。
您应该在https://bitbucket.org/controlsfx/controlsfx/issues?status=new&status=open提交问题报告
关于java - 额定值未设置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26059490/