标签: javafx

如何处理ListView项目单击操作?

我有我的JavaFX 2.0应用程序,在用户单击ListView元素中的项目后,我需要做一些操作.要构建用户GUI我正在使用FXML,其中我有这样的东西:

        <children>
            <ListView fx:id="listView" GridPane.columnIndex="0" 
            GridPane.rowIndex="1" labelFor="$pane" 
            onPropertyChange="#handleListViewAction"/>
        </children>
Run Code Online (Sandbox Code Playgroud)

这是我在控制器中为此事件所拥有的:

        @FXML protected void handleListViewAction(ActionEvent event) {
           System.out.println("OK");
        }
Run Code Online (Sandbox Code Playgroud)

这是一个错误,我接受,当这个gui构建的场景:

javafx.fxml.LoadException: java.lang.String does not define a property model for "property".
at javafx.fxml.FXMLLoader$Element.processEventHandlerAttributes(Unknown Source)
at javafx.fxml.FXMLLoader$ValueElement.processEndElement(Unknown Source)
at javafx.fxml.FXMLLoader.processEndElement(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at fxmlexample.FXMLExampleController.handleSubmitButtonAction(FXMLExampleController.java:49)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(Unknown Source)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) …
Run Code Online (Sandbox Code Playgroud)

listview javafx javafx-2 fxml

22
推荐指数
3
解决办法
7万
查看次数

JavaFX primaryStage删除windows边框?

我正在制作JavaFX destop应用程序.我想删除默认的Windows边框,我也想自定义最小化,最大化和关闭的3个标准图标.

这种外观或定制的最初动机是新的卡巴斯基2012用户界面....我想设计类似的东西...... :)

java user-interface javafx java-ee javafx-2

22
推荐指数
1
解决办法
5万
查看次数

如何在JavaFX中创建具有透明背景的Splash屏幕

我试图像我提出的例子一样创建一个启动画面.似乎AnchorPane不允许透明背景,我已经尝试设置了AnchorPaneto 的css -fx-background-color: rgba(255,0,255,0.1) ;但白色背景仍然显示.

我在fxml文件中的所有内容都是带有ImageView的AnchorPane,其中包含png图像

例

我到处寻找,但找不到任何解决方案,任何帮助将不胜感激.谢谢

java transparency javafx splash-screen javafx-2

22
推荐指数
2
解决办法
3万
查看次数

如何嵌入.ttf字体是JavaFx 2.2?

首先,我是编码领域的新人.我需要在我的基于javaFXML的应用程序中嵌入一个字体,不知道该怎么做.我已经将字体粘贴在fontName.ttf项目源根目录中的"resources"文件夹中,即App/src/app/resources.我已将组件(文本)的CSS设置为

#text {
    -fx-font-family: url(resources/fontName.ttf);
}
Run Code Online (Sandbox Code Playgroud)

我也尝试在url中添加引号,即url("resources/fontName.ttf");,但它不起作用.我还为组件设置了css id,这样就不会出现问题了.还有其他工作方式吗?我见过http://fxexperience.com/2010/05/how-to-embed-fonts/,但由于我有jdk 1.7 u21,它不起作用.有关正确嵌入字体的方法的想法吗?

embed fonts javafx fxml

22
推荐指数
2
解决办法
3万
查看次数

我在哪里可以找到JDK 8/JavaFX 8源代码?

我想重写FXMLLoaderJDK 8 的实现并重新编译.

哪里可以找到JDK8/JavaFX 8的源代码?

openjdk javafx java-8 javafx-8

22
推荐指数
2
解决办法
2万
查看次数

打开场景构建器出错

我正在使用Javafx Eclipse创建一个程序,当我使用Scene Builder打开程序时出现错误

这是错误:

Opening the file with SceneBuilder failed. 
Try setting the absolute path to scenebuilder in your preferences
Run Code Online (Sandbox Code Playgroud)

java eclipse javafx

22
推荐指数
4
解决办法
6万
查看次数

清理JavaFX属性侦听器和绑定(内存泄漏)

我没有找到这两个问题的简单答案:

  1. 在删除属性实例之前是否必须删除侦听器(在其他任何地方都不使用侦听器)?

    BooleanProperty bool = new SimpleBooleanProperty();
    bool.addListener(myListener);
    bool.removeListener(myListener); // is it necessary to do this?
    bool = null;
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在删除属性实例之前,我是否必须取消绑定单向有界属性?

    BooleanProperty bool = new SimpleBooleanProperty();
    bool.bind(otherBool);
    bool.unbind(); // is it necessary to do this?
    bool = null;
    
    Run Code Online (Sandbox Code Playgroud)

binding memory-leaks javafx listener

21
推荐指数
2
解决办法
2万
查看次数

JavaFx2或ScalaFx + Akka

如何在JavaFX/ScalaFX应用程序中运行Akka actor?

(这是基于第一个答案的问题更新)

解决方案是共享相同的执行上下文吗?是否有基于JavaFx ExecutorService的Actors调度程序?(运行UI操作代码的那个)

这是否意味着一个代理将代表UI并能够操纵它?我的意思是因为如果在UI ExecutorService上有几个actor,建议如下,这是不是意味着在代理(对象是UI)之间共享一个状态?

2个演员可以在不同的执行器服务上进行通信吗?我问这个是因为根据下面的建议,一些代理将在UI Executor服务上,而其他代理不在.

最后,为什么使用akka,它的Executor上下文不同并使用Platform.runLater,可能会对UI的性能产生一些影响.我在同一个应用程序中提出了多个执行程序服务的问题:那是不是很糟糕?

scala javafx akka javafx-2 scalafx

21
推荐指数
3
解决办法
4930
查看次数

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

如何使用JRE部署JavaFX 11 Desktop应用程序

我有一个JavaFX(JDK 8)桌面业务应用程序,它使用Java Web Start进行部署.用户安装了Java 8,他们只需转到URL(我的AWS Linux服务器上的公共URL),然后下载/启动应用程序(使用Web Start).我也可以通过将新JAR部署到服务器来轻松更新应用程序.一切都很好.

但是,Oracle已经停止了使用Java 11的Web Start,并且在2018年3月的"Java客户端路线图更新"白皮书中,他们建议将JRE与应用程序捆绑在一起("应用程序的概念是从独立的JRE单独分发的,因此,快速消退.").我不能依赖我的用户留在Java 8 for Web Start,即使他们仍然保持在8,Oracle也需要许可才能继续使用Java 8(我没有,可能非常昂贵,我更喜欢无论如何与社区一起走向JavaFX 11和OpenJDK).


我想迁移到JavaFX 11.我遵循OpenJFX的"JavaFX11入门"(https://openjfx.io/openjfx-docs/),使用OpenJDK 11.0.1和Gluon的JavaFX SDK 11.0.1(在Netbeans 10vc2上) ),并且已经能够运行示例应用程序(在我看来,我应该能够非常轻松地将我的JavaFX 8代码移植到JavaFX 11).

然而,这是我被困在方向的地方.如何将其与JRE捆绑在一起并将其部署到我的最终用户(并提供应用程序更新)?那里有一个简单的方法(甚至是艰难的方式,有一些方向/指南)?

我可以花几百个小时在JavaFX 11中编写富有表现力,丰富且有用的桌面业务应用程序,但我该怎么做呢?

部署工具包(如JWrapper,InstallAnywhere等)是否适合Java 11的这个新时代?Gluon/openjfx.io可能有我错过的推荐或指南吗?我似乎无法从信誉良好的来源找到任何建议或指南,因为我们开发人员如何专注于编写前端代码,以便部署应用程序.

感谢您的帮助或指导.

java javafx openjfx javafx-11

21
推荐指数
1
解决办法
7009
查看次数