我正在使用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/

10-12 03:40