Tag: javafx

你如何使用JavaFX监听在TextField中完成的鼠标粘贴?

将文本复制到剪贴板,右键单击文本字段并按“粘贴”,是否有一种方法可以在粘贴时点击? 或者更确切地说,在通过这种方式粘贴某些内容后,字段中的输入文本会发生 因为这些在这种特殊情况下不起作用: setOnKeyReleased() setOnInputMethodTextChanged()

JavaFX无限时间轴中的内存泄漏

我正在使用JavaFX设计秒表。 代码运行良好。 除了巨大的累积内存泄漏随着时间的推移。 每当我增加Timeline的framerate时,泄漏就会增加。 我目前使用的是4GB内存的Ubuntu 16.04,泄漏速度为300MB / min,速度为30fps。 那是5MBps。 我可以理解,这可能是由于重复绘制Scene而发生的,但为什么会累积? JVM不应该照顾这个吗? Main.java: package UI; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.ButtonBar; import javafx.scene.layout.BorderPane; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage primaryStage) throws Exception{ primaryStage.setTitle(“StopWatch”); primaryStage.setScene(new Scene(getPane(), 400, 400)); primaryStage.show(); } private BorderPane getPane(){ BorderPane pane = new BorderPane(); ClockUI […]

JavaFX中的多个布尔绑定

我试图将复选框绑定到多个复选框,如下所示: private void bindPanelToPackages(CheckBox panel, CheckBox …pkg){ BooleanProperty panelBinding = null; BooleanBinding binder = null; for(CheckBox p: pkg){ if(panelBinding == null){ panelBinding = p.selectedProperty(); } else{ binder = panelBinding.and(p.selectedProperty()); } } if(binder != null){ panel.selectedProperty().bind(binder); } else if(panelBinding != null){ panel.selectedProperty().bindBidirectional(panelBinding); } } 我想要的是当’pkg’有多个项时允许双向组绑定。 这样当我选择我的包时,会自动选择’面板’,或者如果我选择’面板’,将选择/取消选择所有’pkg’。 我被困在: 。panel.selectedProperty()结合(粘合剂); 得到了 “JavaFX Application Thread”java.lang.RuntimeException:CheckBox.selected:无法设置绑定值。 因为我为’binder’做了单向绑定。 有没有办法可以执行与此相同的操作?: 。panel.selectedProperty()bindBidirectional(粘合剂); 我似乎无法在文档中找到它,或者我没有找到正确的地方。 […]

在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制作一个按钮网格

我想制作一个具有特定数量按钮的网格。 我知道需要多少个按钮,因为我得到了行数和列数。 我可以做一个循环,但我不知道如何将按钮放在彼此旁边和下面。 其次,按钮需要Text和Id,文本没问题,但是你怎么给他们一个id? 最后,也许最困难的是,可能会出现很多行,因此滚动条应该可用。 最后看起来应该是这样的:

如何在Javafx 8中向Label文本添加上标

我正在编写我的第一个JavaFX应用程序,但我找不到如何使Label中的某些文本成为上标。 在Swing中,使用HTML标记很容易,但JavaFX中没有此选项。 我搜索了许多API,包括Label,Font,TextFlow,Oracle文档和示例以及一般的互联网。 谢谢。

JavaFX:一行填充了一个条目后的ContextMenu?

我正在使用此链接为每个表行创建ContextMenu。 现在我遇到了问题因为我不确定在将’type’插入行之后如何附加ContextMenu。 假设我正在使用.zip编辑器程序,它会列出内容。 我有一个Image,一个文本文件,以及其他一些东西,所有这些东西都在一个名为Entry的类下面。 我的表的generics类型是’Entry’,我希望能够根据它的底层子类类型为每个条目创建一个上下文菜单(就像ImageEntry可能返回一个菜单项在图像编辑器中打开它)。 。等等)。 现在我有一个通用的上下文菜单,但是显示一个关于用图像编辑器打开文本文件的菜单项并不是很好… 这可能吗? 如果是这样,那么正确的做法是什么?

如何在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; } […]

表格单元格在我的tableview中是空的。 JavaFX + Scenebuilder

我正在尝试让表格单元格在我创建新行时显示字符串。 但是所有的行都是空的。 谁知道我做错了什么? 这是主要的类:包应用程序; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Cursor; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage primaryStage) throws Exception{ Parent root = FXMLLoader.load(getClass().getResource(“/fxml/BasketCase_GUI_0.3.fxml”)); Scene scene = new Scene(root,1110,740); scene.getStylesheets().add(getClass().getResource(“application.css”).toExternalForm()); primaryStage.setResizable(false); primaryStage.setScene(scene); primaryStage.setTitle(“Basket Case_Beta”); primaryStage.show(); scene.setCursor(Cursor.DEFAULT); } public static void main(String[] args) throws Exception { launch(args); […]

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

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