Tag: javafx 8

如何处理相关的FX属性?

属性 – ol’样式bean属性与blinky fx属性相同 – 如果它们彼此正交则效果最佳。 如果它们以某种方式相关,它们会再次出现问题 – 两种类型。 在我讨厌的真实世界中,这种情况可能比我们更喜欢。 例如,取twosome selectedIndex / selectedItem:索引指向列表中项目的位置(如果包含),否则为否定。 更新一个也需要更新另一个。 对于java bean,解决方案很简单,因为bean本身可以完全控制何时触发更改。 而对于fx豆? SelectionModel中使用的基本模式 Property theRealItemProperty = new SimpleObjectProperty(); ReadOnlyProperty readOnlyItemProperty = new ReadOnlyObjectProperty(theRealItemProperty); /** * Public access is read-only */ public final ReadOnlyProperty itemProperty() { return readOnlyItemProperty; } /** * Setting allowed for subclasses only (and mis-behaving package neighbors […]

JavaFX ListCell启用横向增长

我目前有一个可在Width中resize的ListView,我使用一个返回我的自定义ListCell对象的自定义CellFactory。 我已经读过: 使用FXML在JavaFX中自定义ListView ,我使用类似于上面提到的结构: public class ListViewCell extends ListCell{ @Override public void updateItem(String string, boolean empty){ super.updateItem(string,empty); if(string != null) { … setGraphic(myComponent); } } 我希望myComponent采用ListCell中可用的完整大小,但似乎setGraphic方法限制了给定Node的大小。 如果有必要,我可以提供我的所有代码,但是我不确定哪些部分是相关的,我不想发布一大堆代码。

JavaFX:如何在XY线图的Y轴上正确实现`getValueForDisplay()`?

我试图在线图上实现工具提示以显示X轴和Y轴的值,我正确地获得X轴的值,但Y轴值未正确计算。 我试着做数学,但是当我们调整窗口大小时,到目前为止没有任何帮助。 是否有任何逻辑可以帮助我们正确计算Y轴上的值? // lineChart is an object of AreaChart Or XYChart lineChart.setOnMouseMoved(new EventHandler() { @Override public void handle(MouseEvent event) { Tooltip t= new Tooltip(“X:”+lineChart.getXAxis().getValueForDisplay(event.getX()-lineChart.getXAxis().getLayoutX())+”, Y:”+ lineChart.getYAxis().getValueForDisplay(event.getY())); t.show(stage); } });

如何在超时后取消任务?

我有一些Task执行可以挂起的I / O阻塞操作(从URL获取文件) task = new Task<List>() { @Override protected List call() { List services = new ArrayList(); try { services = WSDLService.createService(wsdlURL).getOperations(); } catch (Exception ex) { LOG.log(Level.WARNING, “Can’t reach {0}”, wsdlURL); } return services; } }; } createService方法可以永远等待而不会抛出任何Exception 。 (我使用Main类中定义的全局( static public ) ExecutorService执行任务)。

JavaFX 8默认消息图标

在JavaFX的最后几个更新中,我们有警报。 我想获取消息的默认图标(错误,警告,……)。 在Swing中,我可以通过一些UIManager的属性获取L&F消息图标。 如何在JavaFX中获取消息的默认图标? 它们是包含在属性中还是由CSS类定义的? 提前致谢。

在javafx 8中剥皮自定义3D立方体

我试图通过使用以下代码将一个皮肤添加到一个立方体,但皮肤根本不起作用。 我测试了它是否会添加到一个默认的立方体,它会(但重复每一面的完整图像,而不是环绕它,这就是为什么我要制作一个自定义的立方体,以防止这种情况)。 任何帮助将不胜感激。 private void buildGraphics() { Image dieImage = new Image(getClass().getResourceAsStream(“images/die.gif”)); PhongMaterial material = new PhongMaterial(); material.setDiffuseMap(dieImage); material.setSpecularColor(Color.RED); float hw = 100/2f; float hh = 100/2f; float hd = 100/2f; float points[] = { hw, hh, hd, hw, hh, -hd, hw, -hh, hd, hw, -hh, -hd, -hw, hh, hd, -hw, hh, -hd, -hw, -hh, […]

如何在JavaFX中将图像显示为工具提示?

我想将图像显示为工具提示。 它工作正常,但在一些随机点它显示波动。 我希望在没有波动的情况下正常显示它。 我在鼠标输入事件中显示一个新场景(我在其中添加了带图像的图像视图)并在鼠标离开事件事件中关闭它 // MOUSE ENTER PHOTO CORRECTIO @FXML private void mouseEnterPhotoCorrection(MouseEvent event) { if (f_ShowToolTip) { Stage stg = funShowImageTooltip(); double x, y; x = event.getScreenX(); y = event.getScreenY(); stg.setX(x); stg.setY(y); stg.show(); f_ShowToolTip = false; } } // MOUSE LEAVE PHOTO CORRECTIO @FXML private void mouseLeavePhotoCorrection(MouseEvent event) { funHideImageTooltip(); f_ShowToolTip = true; } […]

如何将变量从控制器代码传递到fxml视图?

我有自定义组件,标签很少,textField很少。 我需要将它实例化3次,但每个版本必须具有前缀为不同String的所有标签。 我的组件fxml的片段: 我想实现某种代码占位符,如: 我尽量避免逐个注入所有标签,因为我知道不可能一次性将所有标签注入控制器,如ex。 Collection allLabels; 问题:如何将String从控制器代码传递到fxml视图,避免重复和不必要的工作?

打破听众的递归

我试图打破一个使这段代码递归的特殊情况。 我有一个Javafx游戏,其中有人和计算机玩家在轮到他的时候玩,并且可以有很多回合。 计算机应该自动播放并立即移动到下一个播放器并且不向UI显示任何直接指示(但是可以查看它之后做了什么)。 问题是在只有电脑玩家的情况下,我们会在当前装载电脑的时候来到这里,输入条件,因为所有玩家都是电脑,设置下一个播放器的电路板,然后无需完成通话,请拨打此电话同样的function: currentBoardPane.addListener((e) -> { if(gameManager.checkIfCurrentPlayerIsComputer()){ gameManager.playAutoMovesForCurrentPlayer(); gameManager.setNextPlayer(); // it does current player property = next player //update board on scene currentBoardPaneIndex = ((currentBoardPaneIndex + 1) % gameManager.getPlayers().size()); currentBoardPane.setValue(boardPanes.get((currentBoardPaneIndex))); //this is a recursive call } }); 取而代之的是,如果我在GameManager为currentPlayer属性订阅一个监听器,那么我仍然需要从该监听器调用setNextPlayer() ,这又是递归的。 如果所有玩家都是计算机,我可以制作一个特例,然后从一段while(true){}而不是听众和绑定运行游戏,但必须有更好的方法来打破这种递归。 还有一种方法是在没有听众和绑定的情况下不进入递归吗? 笔记: currentBoardPane表示屏幕上的当前游戏板,它是一个ObjectProperty 。

加载到JavaFX WebView组件中的完整网页的屏幕截图,不仅是可见部分

经过两年的管理工作后,我正在编写我的第一行代码。 没有时间阅读很多文档,需要在几分钟内创建一个概念validation。 因此,我必须使用JavaFX,并且需要提供允许将Web页面加载到WebView组件中的屏幕截图的function。 问题是我需要整页的屏幕截图,而不仅仅是适合当前应用程序窗口大小的那个。 这是我使用的简单代码: WritableImage image = browser.snapshot(new SnapshotParameters(), null); // browser is javafx.scene.web.WebView File file = new File(“screenshot_fx.png”); try { ImageIO.write(SwingFXUtils.fromFXImage(image, null), “png”, file); } catch (IOException e) { e.printStackTrace(); } 它基本上只捕获我在屏幕上看到的内容。 如果网页需要滚动 – 我将不会在屏幕截图上显示不可见的部分。 请建议如何进行。