标签: javafx

tableview中的javafx列自动调整大小

据我所知的的TableView JavaFX中有2列调整政策:CONSTRAINED_RESIZE_POLICY和UNCONSTRAINED_RESIZE_POLICY,但我想列调整大小以适应他们的单元格的内容,我认为它在其他平台(如C#中的DataGridView)一个简单的问题,但解决不了

javafx javafx-2

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

JavaFX警报及其大小

最近,JavaFX引入了Alerts(Java 8u40).

考虑下面的代码示例.如何显示长度超过几个字的完整消息?我的消息(contentText属性)在最后被删除,...并且警报在我看来没有正确调整其大小.

在我的带有Oracle JDK 8u40的Linux机器上,我只看到了文本This is a long text. Lorem ipsum dolor sit amet,在某些情况下它太短了.

当然,用户可以手动调整警报窗口的大小,并相应地显示文本,但这根本不是用户友好的.

编辑:Windows 7和Linux的屏幕截图(来自Oracle的JDK): Windows警报 Linux警报

import javafx.application.Application;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.stage.Stage;


public class TestAlert extends Application {
    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        Alert a = new Alert(AlertType.INFORMATION);
        a.setTitle("My Title");
        a.setHeaderText("My Header Text");
        a.setResizable(true);
        String version = System.getProperty("java.version");
        String content = String.format("Java: %s.\nThis is a long text. Lorem ipsum …
Run Code Online (Sandbox Code Playgroud)

java alert dialog javafx

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

错误:缺少JavaFX运行时组件,并且需要使用JDK 11运行此应用程序

我正在尝试使用IntelliJ运行示例JavaFX项目,但它失败并出现异常:

Error: JavaFX runtime components are missing, and are required to run this application
Run Code Online (Sandbox Code Playgroud)

我在这里下载了JDK 11:http ://jdk.java.net/11/我在 这里下载了OpenJFX:http://jdk.java.net/openjfx/我正在使用:IntelliJ IDEA 2018.2(社区版)构建#IC-182.3684.40,建于2018年7月17日JRE:1.8.0_152-release-1248-b8 amd64 JVM:JetBrains的OpenJDK 64位服务器虚拟机sro Windows 10 10.0

我使用JDK 11在IntelliJ中创建了一个新的JavaFX项目.我的JavaFX类未知,所以我通过执行以下操作添加了OpenJFX库:

  • 文件 - >项目结构 - >模块 - > + - >库 - > Java

我将OpenJFX添加到"类"下面的8个jar,以及"Sources"下面的文件夹和"Native Library Locations"下bin文件夹的路径.

当我正在构建项目时,这很好,但不可能运行它.

我究竟做错了什么?

java javafx intellij-idea openjfx

33
推荐指数
1
解决办法
6万
查看次数

将JavaFX 2.0 WebView集成到Swing Java SE 6应用程序中

我一直在寻找一种方法在现有的Swing-Application中集成Web-Browser-Component,并找到了WebView for Java FX 2.0.此外,我在java.net上发现了一篇博客文章,展示了如何将Java FX组件集成到Swing应用程序中.所以我想这可能是可行的,但我还没有尝试过.

我很好奇,你认为这是一个好方法吗?还有更好的解决方案吗?它甚至可行吗?也许是预先分类的东西?

的动机是:我想整合一些WebBrowser- 无论到现有的Swing应用中,长期目标被达到所有摆脱整个Java桌面应用程序的,与基于Web的解决方案替换它(该计划是慢慢地将现有方面转换为网页,然后将其显示在WebBrowser-Component中,直到除了浏览器骨架之外没有任何剩余的swing应用程序.后端当然仍然是Java :-)

我还没有尝试过,因为我没有时间将JavaFX与我的项目集成(这是一项工作,我们只是在长期探索替代方案),所以我最好在我被烧毁之前询问.

java swing desktop-application javafx webview

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

Linux上的JavaFX显示"图形设备初始化失败:es2,sw"

我刚开始在Linux上编写/测试JavaFX的东西,我在创建一个简单的应用程序时遇到了错误.在Foruns,我发现许多人对此有所了解,但我能找到一个明确的解释,说明它发生的原因.我想了解我的方案中缺少什么才能使其正常工作.

任何建议都会真正贬值.

环境信息:

java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b123)
Java HotSpot(TM) Client VM (build 25.0-b65, mixed mode)

Linux MYServer 2.6.21-1.3228.fc7 #1 SMP Tue Jun 12 15:37:31 EDT 2007 i686 i686 i386 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

例外:

Graphics Device initialization failed for :  es2, sw
Error initializing QuantumRenderer: no suitable pipeline found
java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
        at com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:300)
        at com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:244)
        at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:179)
        at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:210)
        at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:653)
        at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:314)
        at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:305)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at …
Run Code Online (Sandbox Code Playgroud)

java linux javafx java-8

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

为什么scenebuilder 2.0无法打开我的fxml文件?

我有一个使用SceneBuilder 2.0创建的fxml文件.这个文件在我使用Netbeans 8开发的JavaFx项目中使用.今天,SceneBuilder停止使用我的文件.当我尝试打开它时,SceneBuilder会最小化并且不会打开文件.我的场景图中没有任何自定义组件.

我将文件的内容复制到一个新的fxml文件中并给它一个新名称.然后,SceneBuilder能够打开此文件,即使内容与无法打开的文件相同.

这里发生了什么?

我道歉,但我无法发布fxml文件的内容.

javafx fxml scenebuilder

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

在底层图层上忽略鼠标事件

我有两层(= AnchorPanes)堆叠其中一个与StackPane.所以这两个层都填满整个场景.问题是,只有顶层接收鼠标事件.

多数民众赞成如何建立场景:

场景的布局

只有按钮B接收点击事件,但按钮A没有.

按钮A不接收单击事件

如果我将图层B设置为鼠标透明(layerB.setMouseTransparent(true)),则按钮A会接收鼠标事件.但鼠标透明效果也是所有孩子,因此Button B不再接收鼠标事件.

如何让按钮A和按钮B接收鼠标事件?

以下是完整的工作来源:

public class LayerTest extends Application {
    @Override
    public void start(final Stage primaryStage) throws Exception {
        final Node layerA = createLayerA();
        final Node layerB = createLayerB();
        final Parent root = new StackPane(layerA, layerB);
        final Scene scene = new Scene(root);
        primaryStage.setScene(scene);
        primaryStage.setWidth(250);
        primaryStage.setHeight(200);
        primaryStage.show();
    }

    private Node createLayerA() {
        final AnchorPane layerA = new AnchorPane();
        final Button buttonA = new Button("Button A");
        AnchorPane.setLeftAnchor(buttonA, 10d);
        AnchorPane.setTopAnchor(buttonA, 10d);
        buttonA.setOnMouseClicked(e -> System.out.println("Button A clicked"));
        layerA.getChildren().setAll(buttonA); …
Run Code Online (Sandbox Code Playgroud)

javafx

32
推荐指数
1
解决办法
8374
查看次数

JavaFX与Flash和Flex相比如何?

我知道Flex非常好,但也开始使用Java FX.我有点困惑.Java FX似乎更关注低级绘图操作和动画.减少创建像Flex这样的标准UI.

那么JavaFX更像Flash而不是Flex吗?

另一方面,JavaFX还支持Swing组件以及数据绑定,这使它看起来更像Flex.

apache-flex flash javafx

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

从JavaFX TableView获取所选项目

如何从TableViewJavaFX中获取所选项?

我目前正在使用

ObservableList selectedItems = taview.getSelectionModel().getSelectedItems();
Run Code Online (Sandbox Code Playgroud)

但这并没有返回选择模型中的一个选定项目.

java javafx tableview

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

使用Gradle构建JavaFX应用程序

我正在尝试使用Gradle构建一个相对简单的JavaFX应用程序.但是,我不知道该怎么做.

我对Gradle相对较新,对于简单(非javafx)项目,我已成功使用插件javaapplication构建和打包库和命令行应用程序.

但是,在JavaFX方面,我完全陷入困境.我已经阅读了这篇文章,建议使用JavaFX插件,但是我只能找到这个插件的源代码,但没有关于如何实际获取它的文档(在文章中他们只是从远程URL应用它,但是我的机器失败了,说我没有被授权......)

关于如何正确做到这一点的任何线索?

java javafx gradle

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