Tag: JavaFX的2

JavaFX 2自动列宽

我有一个JavaFX 2表,显示联系人的详细信息,让我们想象有三列:名字,姓氏和电子邮件地址。 当我的应用程序启动时,它会在表中填入几行关于系统中已有人员的数据。 问题是列的宽度都是一样的。 大多数情况下,名字和姓氏全部显示,但电子邮件地址被截断。 用户可以双击标题中的分隔符来调整列的大小,但这将很快变得乏味。 一旦表已被预先填充,我想以编程方式调整所有列以显示它们包含的数据,但我不知道如何实现这一点。 我可以看到,我可以调用col.setPrefWidth(x)但是这并没有真正的帮助,因为我不得不猜测宽度。

JavaFX 2.1:Toolkit未初始化

我的应用程序是基于Swing的。 我想介绍JavaFX并将其configuration为在辅助显示器上渲染场景。 我可以使用一个JFrame来容纳一个JFXPanel,它可以容纳一个JFXPanel,但是我想用JavaFX API来实现。 inheritancecom.sun.glass.ui.Application并使用Application.launch(this)不是一个选项,因为调用线程将被阻塞。 当从Swing EDT实例化舞台时,我得到的错误是: java.lang.IllegalStateException: Toolkit not initialized 任何指针? 编辑:结论 问题 :不平凡的Swing GUI应用程序需要运行JavaFX组件。 应用程序的启动过程在启动依赖服务层后初始化GUI。 解决scheme 子类JavaFX应用程序类 ,并在一个单独的线程运行它,例如: public class JavaFXInitializer extends Application { @Override public void start(Stage stage) throws Exception { // JavaFX should be initialized someGlobalVar.setInitialized(true); } } 旁注:因为Application.launch()方法需要一个Class<? extends Application> Class<? extends Application>作为参数,必须使用全局variables来表示已经初始化JavaFX环境。 另一种方法: 在Swing Event Dispatcher Thread中实例化JFXPanel : final […]

如何在JavaFX 2.1中创build一个模态窗口

我无法弄清楚如何在JavaFX中创build一个模态窗口。 基本上我有文件select器,我想要问用户一个问题,当他们select一个文件。 我需要这些信息来parsing文件,所以执行需要等待答案。 我已经看到这个问题,但我一直无法find如何实现这种行为。

JavaFX LineCharthover值

我正在使用JavaFX创build折线图。 目前所有的都是好的,它成功地创build了我需要从数据库存储过程中获得的数据的图表。 无论如何,如果可能的话,LineChart上的每个数据点都有一个鼠标hover事件,它指定特定点后面的值,例如150,000英镑。 我已经在PieCharts上看到了这个例子,它显示了hover时的%值,但是我找不到LineCharts的任何地方的例子,甚至可以这样做吗? 任何人都可以指出我在正确的方向吗? 目前代码: private static final String MINIMIZED = "MINIMIZED"; private static final String MAXIMIZED = "MAXIMIZED"; private static String chartState = MINIMIZED; // 12 Month Sales Chart XYChart.Series<String, Number> series = new XYChart.Series<>(); XYChart.Series<String, Number> series2 = new XYChart.Series<>(); public void getDeltaData() { try { Connection con = DriverManager.getConnection(connectionUrl); //Get all […]

JavaFX定期后台任务

我尝试在JavaFX应用程序后台线程中定期运行,这会修改某些GUI属性。 我想我知道如何使用javafx.concurrent Task和Service类,并且不知道如何在不使用Thread#sleep()方法的情况下运行这样的周期性任务。 这将是很好,如果我可以使用Executor从Executors制造方法( Executors.newSingleThreadScheduledExecutor() ) 我试图每5秒运行一次Runnable ,这会重新启动javafx.concurrent.Service但是会立即挂起,因为service.restart或者甚至是service.getState()被调用。 所以最后我使用Executors.newSingleThreadScheduledExecutor() ,每5秒触发一次Runnable , Runnable使用以下命令运行另一个Runnable : Platform.runLater(new Runnable() { //here i can modify GUI properties } 它看起来非常讨厌:(有没有更好的方式来使用Task或Service类来做到这一点?