标签: javafx

如何在JavaFX 2.1中创建模态窗口

我无法弄清楚如何在JavaFX中创建模态窗口.基本上我有文件选择器,我想在用户选择文件时询问用户.我需要这些信息才能解析文件,因此执行需要等待答案.

我已经看到了这个问题但是我无法找到如何实现这个行为.

javafx javafx-2

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

JavaFX 8隐藏阶段时内存泄漏

我有一个JavaFX应用程序,当按下X按钮时,该应用程序最小化到托盘.我一直在通过VisualVM监视应用程序的内存趋势.

奇怪的是,当应用程序打开或最小化到任务栏时,内存总是被GC返回到使用的初始内存.然而,当它被最小化到托盘(stage.hide(),systemTray.show())时,内存得到GCed,但是呈上升趋势(泄漏).

在VisualVM中,Old Gen空间不断上升,一旦它在一段时间后达到最大值,应用程序将无法响应,并且CPU峰值达到80%.

我注意到如果我stage.show()通过双击托盘图标等在应用程序上,GC将清除所有内容恢复正常.但是,如果长时间离开,它将无法使GC成为老一代.

堆转储显示javafx.scene.Scene#7javafx.scene.Node[]#2具有最多保留空间.如果未隐藏舞台,则两者都不会出现.在参考文献中,它显示 this[] -> dirtyNodes().

this     - value: javafx.scene.Node[] #2
<- dirtyNodes     - class: javafx.scene.Scene, value: javafx.scene.Node[] #2
 <- value     - class: javafx.scene.Node$ReadOnlyObjectWrapperManualFire, value:  
 javafx.scene.Scene #7
Run Code Online (Sandbox Code Playgroud)

造成这种情况的原因是什么?如何解决这个问题?

java garbage-collection memory-leaks javafx javafx-8

36
推荐指数
1
解决办法
2148
查看次数

如何在Java FX工具栏中右键对齐按钮

我正在使用Java FX场景构建器构建UI,我希望工具栏中的按钮向工具栏的右侧浮动.我已经尝试更改父(工具栏)和按钮的节点方向,但似乎都被忽略.

java javafx java-8 scenebuilder javafx-8

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

使用FXML在JavaFX中自定义ListView

我想在javafx中创建自定义列表视图.在这里,我需要在列表单元格中绑定多个组件,如下所示,例如一个标签,一个文本字段,一个HBox下的一个按钮和两个按钮,一个超链接,另一个HBox中的一个标签,这些HBox属于一个VBox,这个VBox属于单个列表单元格,它将重复并生成一个列表视图.

代码是

<ListView fx:id="ListView" layoutX="0" layoutY="30" prefWidth="600" prefHeight="300">
    <HBox fx:id="listBox" alignment="CENTER_LEFT">
        <padding><Insets top="5" bottom="5" left="5"></Insets> </padding>
        <HBox alignment="CENTER_LEFT" prefWidth="170" minWidth="88">
            <Label fx:id="surveyName" text="Field A" styleClass="Name"></Label>
        </HBox>
        <VBox styleClass="Description" prefWidth="155" minWidth="86">

            <HBox>
                <HBox styleClass="surveyDesIcon" prefWidth="20" prefHeight="16"></HBox>
                <Label fx:id="surveyCode" text="PRW3456HJ"></Label>
            </HBox>
            <HBox>
                <HBox styleClass="DateIcon" prefWidth="20" prefHeight="16"></HBox>
                <Label fx:id="Date" text="PRW3456HJ"></Label>
            </HBox>
        </VBox>
        <HBox fx:id="Status" prefWidth="160" minWidth="80">
            <Label fx:id="StatusLabel" text="Checking Files.."/>
        </HBox>
        <HBox fx:id="StatusIcon1" prefWidth="50" prefHeight="50" alignment="CENTER">
            <Label styleClass="StatusIcon1" prefWidth="24" prefHeight="24" alignment="CENTER"/>
        </HBox>
        <HBox fx:id="StatusIcon2" prefWidth="50" prefHeight="50" styleClass="StatusIconBox" alignment="CENTER">
            <Hyperlink styleClass="StatusIcon2" prefWidth="24" maxHeight="24" alignment="CENTER"/> …
Run Code Online (Sandbox Code Playgroud)

javafx fxml

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

JavaFX 8中的ScrollPanes始终具有灰色背景

当我通过JavaFX应用程序从JavaFX 2升级到JavaFX 8时,我注意到ScrollPanes总是显示为灰色矩形,即使背景颜色设置或背景设置为透明.

javafx javafx-8

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

JavaFX中WebView的性能

我有一个HTML5用户界面和一个Java后端,并希望避免在普通的java中重建HTML ui,所以我的想法是运行本地网络服务器并使用webview在"本机"窗口中呈现它.解决方案似乎是使用可以嵌入摇摆的JavaFX WebView.在纸上听起来很棒(特别是因为他们声称使用的是WebKit,它在Chrome/Safari中的UI性能明显更好).

它有效,但是:性能难以置信.在Chrome,Safari(甚至是速度较慢的Firefox)中,数量级比同样的速度慢.它几乎无法使用(我的UI大量使用JQuery/JS).顺便说一句,我正在使用这篇文章中的代码.

问题是:

  1. 任何人都可以介绍我的经验吗?我只是做错了什么或者这是由JavaFX引起的,因此"正常"?

  2. 更好的想法如何实现这一目标?我目前只是简单地启动系统浏览器,但它不是很好(看起来不像集成). 

java performance swing javafx webview

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

如何避免不在FX应用程序线程上; currentThread = JavaFX应用程序线程错误?

下面的代码片段给我错误Not on FX application thread; currentThread= JavaFX Application Thread.这个应用程序在java 1.7中工作得很好但是当我把它移动到fx8时它现在给出了错误.当我在第一次尝试时启动应用程序时它正在按预期工作.但是在关闭舞台并再次打开它之后它无法正常工作.

错误也是模棱两可的.Not On fx application thread and current thread- javafx application thread如果当前线程是fx应用程序线程,那么它不是在fx应用程序线程上意味着什么.

      progressDialog = createProgressDialog(service);
        progressDialog.show();
        progressDialog.setOnCloseRequest(new EventHandler<WindowEvent>() {
          @Override
          public void handle(WindowEvent event) {
            // if (service.isRunning()) {
            // service.cancel();
            progressDialog.close();
            // }
          }
        });

      }

      @SuppressWarnings("unchecked")
      private Stage createProgressDialog(final Service<IStatus> service) {
        stage = new Stage();

        URL url = FileLocator.find(Activator.getDefault().getBundle(),
            new Path("icons/xxx_16x16.png"), null); //$NON-NLS-1$
        stage.getIcons().add(new Image(url.getFile()));
        stage.setTitle("Downloading ..."); //$NON-NLS-1$
        // Creating StackPane
        stage.initModality(Modality.WINDOW_MODAL);
}
Run Code Online (Sandbox Code Playgroud)

multithreading javafx javafx-2 javafx-8

34
推荐指数
6
解决办法
7万
查看次数

如何在javafx中调整imageview图像的大小?

我需要在JavaFX中将图像调整为特定尺寸,例如100 x 100像素.

我怎样才能做到这一点?Image或ImageView类可以用于此目的吗?

java resize javafx image imageview

34
推荐指数
1
解决办法
7万
查看次数

包装jar无效聚合器项目需要pom作为包装

我的项目有不同的模块.

  • 每个模块都有一个pom.xml,用于指定jar包装.
  • 每个pom指的是共同的父母.
  • 在父模块中还有一个包含所有模块的pom.xml.

当我尝试使用父模块的pom.xml打包时,它显示错误 - "打包jar无效聚合器项目需要pom作为打包".

如何从maven制作应用程序的可执行jar?

java javafx jar maven

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

JavaFX和maven:NullPointerException:位置是必需的

我一直试图让Maven与JavaFX建立起来.尽管我对Maven和JavaFX缺乏经验,但我并不认为这是一个很大的挑战.我的Java知识非常可靠(包括Swing),并且没想到设置它会有这么大的困难.

我开始使用IntelliJ 13.0 Community Edition提供的JavaFX项目.我的Main类中的代码相对较小:

package sample;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
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
    {
        //getClass().getResource("../../resources/sample.fxml");
        Parent root = FXMLLoader.load(getClass().getResource("../sample.fxml"));
        primaryStage.setTitle("Hello World");
        primaryStage.setScene(new Scene(root, 300, 275));
        primaryStage.show();
    }


    public static void main(String[] args)
    {
        launch(args);
    }
}
Run Code Online (Sandbox Code Playgroud)

pom.xml也不是太大了:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>sample</groupId>
    <artifactId>JavaFXDemo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <organization>
        <name>RubberDucky</name>
    </organization>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>com.zenjava</groupId>
                    <artifactId>javafx-maven-plugin</artifactId>
                    <version>2.0</version>
                </plugin> …
Run Code Online (Sandbox Code Playgroud)

java javafx maven

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