标签: javafx-2

JavaFX打开新窗口

查看此代码,它们显示了一种在登录后显示新窗口的方法.当用户名和密码正确时,它会打开新对话框.我想要一个按钮单击打开新对话框,而不检查用户名和密码.

javafx-2

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

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

如何避免不在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万
查看次数

tableview中的javafx列自动调整大小

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

javafx javafx-2

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

调整图像大小以适合父节点

如何在ImageView中获取图像以自动调整大小以使其始终适合父节点?

这是一个小代码示例:

@Override
public void start(Stage stage) throws Exception {
    BorderPane pane = new BorderPane();
    ImageView img = new ImageView("http://...");

    //didn't work for me:
    //img.fitWidthProperty().bind(new SimpleDoubleProperty(stage.getWidth())); 

    pane.setCenter(img);

    Scene scene = new Scene(pane);
    stage.setScene(scene);
    stage.show();
}
Run Code Online (Sandbox Code Playgroud)

scaling imageview javafx-2

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

以编程方式更改TableView行外观

在做了关于TableViewOracle教程之后,我想知道是否有一种方法可以以编程方式将不同的CSS样式应用于所选的TableView行.例如,用户选择某一行,单击"突出显示"按钮,所选行获得棕色背景,白色文本填充等.我在JavaFX中阅读了JavaFX tableview颜色,用2种颜色更新TableView行外观背景?,但无济于事= /

这是来源:

import javafx.application.Application;
import javafx.beans.property.SimpleStringProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.stage.Stage;

public class TableViewSample extends Application {

    private TableView<Person> table = new TableView<Person>();
    private final ObservableList<Person> data =
        FXCollections.observableArrayList(
            new Person("Jacob", "Smith", "jacob.smith@example.com"),
            new Person("Isabella", "Johnson", "isabella.johnson@example.com"),
            new Person("Ethan", "Williams", …
Run Code Online (Sandbox Code Playgroud)

java tableview javafx-2

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

JavaFX场景构建器2:控制器类

您好我正在构建一个JavaFX项目并且正在使用JavaFX Scene Builder 2.我想将我的控制器链接到我的fxml文件但我看不到在Scene Builder 2中将控制器添加到我的fxml文件的可能性.我想知道是否有人可以帮助我.谢谢.

java javafx-2 scenebuilder

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

FXML完全参考?

我正在尝试学习JavaFX 2.0 + FXML,我发现制作fxml文件有点不舒服,不知道我可以放入什么,我不能.我的意思是FXML中哪些标签是可能的,哪些属性是evety标签?值evety属性可以具有哪些值,等等.Web中有一些示例,但它们没有显示FXML的漏洞功能.我曾尝试将NetBeans和Eclipse插件用于JavaFX 2.0,但是,它们都没有FXML的任何内容,它们只是验证开放式标签和其他简单的东西,这是evety XML编辑器可以做到的.也许我错误地配置了这些插件.那么,是否有任何文献显示FXML的完整参考(所有标签,属性及其可能值)?

javafx javafx-2 fxml

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

在JavaFx标签或文本中将文本的一部分加粗

在我的JavaFx应用程序中,我需要在整个句子中用粗体字表示一两个字.目前,句子呈现为JavaFx标签,但升级组件也不允许我将文本设置为以便我可以将单词"Sample"以粗体显示.

String s = "This is a <b>Sample</b> sentence"
Label label = new Label(s);
Run Code Online (Sandbox Code Playgroud)

产量

This is a Sample sentence

JavaFx Text也不允许这样做.是否有任何组件,我可以用粗体表示部分文本?

我不确定JavaFx WebView是否适合在窗口中渲染许多小句子.

javafx javafx-2

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

从JavaFX中的不同线程更新UI

我正在开发一个具有多个TextField对象的应用程序,这些对象需要更新以反映相关后端属性的更改.该TextFields为不可编辑,只有后端可能会改变他们的内容.

据我所知,正确的方法是在单独的线程上运行繁重的计算,以免阻塞UI.我这样做是使用javafx.concurrent.Task并将单个值传递回JavaFX线程updateMessage(),这很好用.但是,我需要更新多个值,因为后端会进行其处理.

由于后端值存储为JavaFX属性,我尝试将它们绑定到textProperty每个GUI元素,并让绑定完成工作.但是,这不起作用; 运行一会儿后,TextField即使后端任务仍在运行,s也会停止更新.没有例外.

我也尝试过使用Platform.runLater()主动更新TextFields而不是绑定.这里的问题是runLater()任务的调度速度比平台可以运行的速度快,因此GUI变得迟缓,即使在后端任务完成后也需要时间"赶上".

我在这里找到了一些问题:

转换为UI的记录器条目不再随时间更新

JavaFX中的多线程挂起了UI

但我的问题仍然存在.

总结:我有一个后端对属性进行更改,我希望这些更改出现在GUI上.后端是遗传算法,因此其操作被分解为离散的世代.我希望TextFields能够在几代人之间至少刷新一次,即使这会延迟下一代.更重要的是,GUI响应良好,而GA运行速度快.

如果我没有明确问题,我可以发布一些代码示例.

UPDATE

我按照James_D的建议设法做到了.为了解决后端必须等待控制台打印的问题,我实现了一个缓冲的控制台.它存储要在a中打印的字符串,StringBuffer并实际将它们附加到调用方法TextAreaflush().我使用AtomicBoolean来防止下一代发生,直到刷新完成,因为它是由Platform.runLater()runnable 完成的.另请注意,此解决方案非常慢.

java user-interface multithreading javafx-2

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