标签: javafx-8

如何在onfocus和outfocus上对javaFX TextField执行任务?

我正在研究JavaFX项目.我需要在JavaFX上执行一些任务TextField.

例如,TextField我要打印的"焦点上"事件

System.out.println("Textfield on focus");
Run Code Online (Sandbox Code Playgroud)

它应该打印出"焦点"事件

System.out.println("Textfield out focus");
Run Code Online (Sandbox Code Playgroud)

java javafx javafx-2 javafx-8

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

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万
查看次数

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

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

javafx javafx-8

35
推荐指数
3
解决办法
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创建Truetype字体文件

我有一块帆布.它要求用户从AZ,az或0-9中绘制一个字符.一旦用户绘制了一个字符A,则当前画布对象将保存在画布的arraylist中.弹出另一个空白画布,要求用户绘制B.等等.

程序运行正常.但我想创建一个.ttf包含所有可接受字符的文件.

我在最后显示的画布下方有一个按钮,当点击它时,将从画布的arraylist中提取所有字符并从中创建一个.ttf文件.但是怎么样?

java fonts truetype javafx-8

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

样式化默认JavaFX对话框

我正在寻找一种方法来设置默认的JavaFX Dialog(javafx.scene.control.Dialog).

我试图获得DialogPane并添加样式表,但它只涵盖了对话框的一小部分.我更喜欢只使用外部css文件设置样式,而不在代码上添加styleClasses.这看起来很混乱(标题,内容,内容上的内容等等......)

我已经googled很多,只找到了ControlsFX的例子,但是因为jdk8_40 JavaFX拥有它自己的Dialogs,我现在就使用它们.

有什么建议?

编辑:

自JoséPereda发布解决方案后,我创建了自己的dialog.css.我会在这里发布,因为它涵盖整个对话框,也许有人想要复制并粘贴它.注意.dialog-pane已经是给定的styleClass名称,因此您不需要应用自己的名称.当然,何塞更详细.

.dialog-pane {
    -fx-background-color: black;
}

.dialog-pane .label {
    -fx-text-fill: white;
}

.dialog-pane:header .header-panel {
    -fx-background-color: black;
}

.dialog-pane:header .header-panel .label {
    -fx-font-style: italic;
    -fx-font-size: 2em;
}
Run Code Online (Sandbox Code Playgroud)

dialog javafx javafx-8

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

任务与数据库操作的服务

JavaFX 8任务和服务之间有什么区别,在哪种情况下,使用一个优于另一个?在数据库操作中使用什么更好?

javafx javafx-2 javafx-8

28
推荐指数
1
解决办法
9193
查看次数

如何控制JavaFX Tooltip的延迟?

我正在玩JavaFX Tooltip.我意识到,就个人而言,徘徊在某些东西和实际出现的工具提示之间的延迟太长了.API中的内容显示:

通常,当鼠标在控件上移动时,工具提示会"激活".工具提示变为"激活"和实际显示之间通常存在一些延迟.详细信息(例如延迟量等)留给Skin实现.

经过一些进一步的调查,我无法找到控制此行为的任何可能性.在JavaFX的CSS参考没有关于延迟时间和运行时间,评价信息getCssMetaData()没有帮助.

我知道,有一种方法可以通过onMouseEntered和手动控制工具提示onMouseExited,但是真的没有别的方法吗?或者我错过了一个明显的选择?

css java fxml javafx-8

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

JavaFX的TextField的值更改侦听器

我想添加一种listenerJavaFX's TextField的用户,当用户更改其值时TextField,应用程序会在控制台上打印一些内容.

我搜索过,我发现了以下非常相似的问题:JTextField的值更改侦听器

提到的问题的答案是非常明确和有效的,但不幸的是它只对JTextField(Not JavaFX's TextField)有用,因为它说你应该像这样使用DocumentListener:

// Listen for changes in the text
textField.getDocument().addDocumentListener(new DocumentListener() {
  public void changedUpdate(DocumentEvent e) {
    warn();
  }
  public void removeUpdate(DocumentEvent e) {
    warn();
  }
  public void insertUpdate(DocumentEvent e) {
    warn();
  }
Run Code Online (Sandbox Code Playgroud)

但是在JavaFX的TextFields中你无法做到这一点.所以?解决办法是什么?

(用代码描述可能非常好,但如果不可能,任何提示将不胜感激)

java javafx documentlistener javafx-8

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