小编Luc*_*rum的帖子

PreparedStatement、浮点值和 postgresql

为什么使用 setFloat 的 PreparedStatement 给出与直接 INSERT 不同的结果(精度较低)?

下面的代码显示了这个问题:

    Connection conn = createConnection();

/* here works as expected */
    String sql = "INSERT INTO teste values (1, -50.505050)";
    PreparedStatement ps = conn.prepareStatement(sql);
    ps.executeUpdate();

/* below, all values were saved with less precision */
    sql = "INSERT INTO teste values (?, ?)";
    ps = conn.prepareStatement(sql);

    ps.setInt(1, 2);
    ps.setFloat(2, -50.505050f);
    ps.executeUpdate();

    ps.setInt(1, 3);
    ps.setFloat(2, (float) -50.505050);
    ps.executeUpdate();

    ps.setInt(1, 4);
    ps.setFloat(2, Float.valueOf(-50.505050f));
    ps.executeUpdate();

    ps.setInt(1, 5);
    ps.setFloat(2, Float.valueOf("-50.505050"));
    ps.executeUpdate();

// with double works ok, but …
Run Code Online (Sandbox Code Playgroud)

java database postgresql jdbc prepared-statement

4
推荐指数
1
解决办法
637
查看次数

GridView 仅在图像可见时创建图像

嘿那里

所以我有以下问题。我有大约 1500 张扑克牌图像。我想将它们显示在“图库”中,您可以在其中滚动浏览它们。我能够使用 ImageCell 对象创建 GridView,并且还能够向其中添加图像。现在我的问题是,如果我一次添加所有图像,逻辑上Java会因为堆错误而崩溃。我的列表中有图像网址(本地文件)。我怎样才能实现它只加载 15 张图像。如果我滚动它,它会加载接下来的 15 个并卸载旧的。所以它只会加载实际可见图像的图像,而不是全部 1500 个图像。我该怎么做?我完全没有主意了。需要 Platform.runLater() 因为 ControlsFX 存在某种问题

这是我的代码:

    public void initialize() {

    GridView<Image> gridView = new GridView<>();
    gridView.setCellFactory(gridView1 -> new ImageGridCell(true));
    Image image = new Image("C:\\Users\\nijog\\Downloads\\cardpictures\\01DE001.png");

    gridView.setCellWidth(340);
    gridView.setCellHeight(512);

    //Platform.runLater(()-> {
    //    for (int i = 0; i < 5000; i++){
    //        gridView.getItems().add(image);
    //    }
    //});

    Platform.runLater(() -> gridView.getItems().addAll(createImageListFromCardFiles()));

    borderPane.setCenter(gridView);

}

protected List<Image> createImageListFromCardFiles(){

    List<Image> imageViewList = new ArrayList<>();
    App.getCardService().getCardArray().stream()
            //.filter(Card::isCollectible)
            .sorted(Comparator.comparingInt(Card::getCost))
            .sorted(Comparator.comparing(Card::isChampion).reversed())
            .skip(0)
            //.limit(100)
            .forEach(card -> {
                try {
                    String …
Run Code Online (Sandbox Code Playgroud)

java gridview javafx controlsfx

4
推荐指数
1
解决办法
107
查看次数

WeldContainer 和 SeContainer

使用有什么区别:

WeldContainer se = new Weld().initialize();

或者

SeContainer se = SeContainerInitializer.newInstance().initialize();

我只是想使用@Injection和@Produce注解,但是我还没有发现这两种初始化对象实例的方式之间的区别。

java cdi jboss-weld weld weld2

2
推荐指数
1
解决办法
702
查看次数