标签: javafx-2

使用JavaFX 2.0编译代码(使用命令行)

我想知道如何使用JavaFX从Windows shell编译代码.

我有这个代码fxservidor.java:

public class Fxservidor extends Application {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {        
        primaryStage.setTitle("Hello World!");
        Button btn = new Button();
        btn.setText("Say 'Hello World'");
        btn.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {
                Synthetizer os = new Synthetizer("Ximena");                
            }
        });

        StackPane root = new StackPane();
        root.getChildren().add(btn);
        primaryStage.setScene(new Scene(root, 300, 250));
        primaryStage.show();
    }
}
Run Code Online (Sandbox Code Playgroud)

java compilation javafx-2

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

JavaFX:未修饰的窗口

我正在尝试制作Windows PC Toast通知.现在我正在使用Swing和JavaFX的混合物,因为我找不到用FX制作未修饰窗口的方法.我更愿意只使用JavaFX.

那么,我怎样才能制作一个未修饰的窗户?

编辑:我发现你可以直接创建一个舞台new Stage(StageStyle.UNDECORATED).

现在我需要知道的是如何初始化工具包,以便我可以调用我的start(Stage stage)方法MyApplication.(哪个extends Application)

我通常会打电话Application.launch(MyApplication.class, null),但这会使我免于创建Stage和初始化Toolkit.

那么如何让这些东西start(new Stage(StageStyle.UNDECORATED))直接使用呢?

java windows javafx toast javafx-2

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

在javafx中移动一个未修饰的阶段2

我一直试图通过使用以下鼠标监听器在屏幕上移动一个未修饰的阶段:

  • onPressed
  • onReleased
  • onDragged

这些事件来自一个矩形.我的想法是移动未装饰的窗口,点击矩形并拖动所有窗口.

@FXML
protected void onRectanglePressed(MouseEvent event) {
    X = primaryStage.getX() - event.getScreenX();
    Y = primaryStage.getY() - event.getScreenY();
}

@FXML
protected void onRectangleReleased(MouseEvent event) {
    primaryStage.setX(event.getScreenX());
    primaryStage.setY(event.getScreenY());
}

@FXML
protected void onRectangleDragged(MouseEvent event) {
    primaryStage.setX(event.getScreenX() + X);
    primaryStage.setY(event.getScreenY() + Y);
}

我用这些事件得到的就是当我按下矩形并开始拖动窗口时,它会移动一点点.但是,当我释放按钮时,窗口移动到矩形所在的位置.

提前致谢.

stage javafx-2

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

你如何让JavaFX ListView成为其项目的高度?

如果我创建一个ListView:

new ListView<>(FXCollections.observableArrayList("1", "2", "3"))
Run Code Online (Sandbox Code Playgroud)

我希望它创建一个包含3行的ListView.但事实并非如此.它创建了一个大约17行的ListView.有没有办法告诉ListView始终是高度,以便其中的任何项目始终显示但没有空行?

拥有自动宽度也很有用,因此它总是与最宽的行一样宽.

这样做的一个目的是,它可以在ScrollPane中使用.我知道它有自己的滚动条,但它们没有提供足够的控制.

javafx-2

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

如何处理ListView项目单击操作?

我有我的JavaFX 2.0应用程序,在用户单击ListView元素中的项目后,我需要做一些操作.要构建用户GUI我正在使用FXML,其中我有这样的东西:

        <children>
            <ListView fx:id="listView" GridPane.columnIndex="0" 
            GridPane.rowIndex="1" labelFor="$pane" 
            onPropertyChange="#handleListViewAction"/>
        </children>
Run Code Online (Sandbox Code Playgroud)

这是我在控制器中为此事件所拥有的:

        @FXML protected void handleListViewAction(ActionEvent event) {
           System.out.println("OK");
        }
Run Code Online (Sandbox Code Playgroud)

这是一个错误,我接受,当这个gui构建的场景:

javafx.fxml.LoadException: java.lang.String does not define a property model for "property".
at javafx.fxml.FXMLLoader$Element.processEventHandlerAttributes(Unknown Source)
at javafx.fxml.FXMLLoader$ValueElement.processEndElement(Unknown Source)
at javafx.fxml.FXMLLoader.processEndElement(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at fxmlexample.FXMLExampleController.handleSubmitButtonAction(FXMLExampleController.java:49)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(Unknown Source)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) …
Run Code Online (Sandbox Code Playgroud)

listview javafx javafx-2 fxml

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

JavaFX primaryStage删除windows边框?

我正在制作JavaFX destop应用程序.我想删除默认的Windows边框,我也想自定义最小化,最大化和关闭的3个标准图标.

这种外观或定制的最初动机是新的卡巴斯基2012用户界面....我想设计类似的东西...... :)

java user-interface javafx java-ee javafx-2

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

如何使用JUnit对JavaFX控制器进行单元测试

什么是初始化JavaFX运行时的正确方法,以便您可以使用并发工具进行单元测试(使用JUnit)控制器Platform.runLater(Runnable)

Application.launch(...)从该@BeforeClass方法调用会导致死锁.如果Application.launch(...)未调用,则抛出以下错误:


java.lang.IllegalStateException: Toolkit not initialized
    at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:121)
    at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:116)
    at javafx.application.Platform.runLater(Platform.java:52)
    at javafx.concurrent.Task.runLater(Task.java:1042)
    at javafx.concurrent.Task.updateMessage(Task.java:987)
    at com.xyz.AudioSegmentExtractor.call(AudioSegmentExtractor.java:64)
    at com.xyz.CompletionControllerTest.setUp(CompletionControllerTest.java:69)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Run Code Online (Sandbox Code Playgroud)

跟进:这是我根据@SergeyGrinev推荐使用的主题.

... // Inside test class

public static …
Run Code Online (Sandbox Code Playgroud)

java junit unit-testing javafx-2

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

JavaFX相当于Swing的pack()

我想调整窗口大小以适应窗口的内容.在Swing中有pack()方法.在JavaFX中有类似的方法吗?

我想要做的是创建一个确认对话框.当我创建对话框时,它比内容更宽,所以我问自己是否需要类似pack方法的东西.

以下是正在发生的事情的屏幕截图: 在此输入图像描述

这是我的代码:

mainClass.getPrimaryStage().setOnCloseRequest(new EventHandler<WindowEvent>() {
    @Override
    public void handle(final WindowEvent e) {
        e.consume();

        final Stage dialog = new Stage();
        dialog.setTitle("Confirm Before Exit");
        dialog.setResizable(false);
        dialog.initOwner(mainClass.getPrimaryStage());
        dialog.initModality(Modality.APPLICATION_MODAL);

        FlowPane buttons = new FlowPane(10,10);
        buttons.setAlignment(Pos.CENTER);
        Button yes = new Button("Yes");
        Button no = new Button("No");
        buttons.getChildren().addAll(yes, no);
        VBox box = new VBox();
        box.setAlignment(Pos.CENTER);
        box.setSpacing(10);
        box.getChildren().addAll(new Label("Do you really want to exit?"), buttons);

        yes.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent t) {
                Platform.exit();
            }
        });
        no.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void …
Run Code Online (Sandbox Code Playgroud)

java swing javafx-2

22
推荐指数
1
解决办法
8079
查看次数

如何在JavaFX中创建具有透明背景的Splash屏幕

我试图像我提出的例子一样创建一个启动画面.似乎AnchorPane不允许透明背景,我已经尝试设置了AnchorPaneto 的css -fx-background-color: rgba(255,0,255,0.1) ;但白色背景仍然显示.

我在fxml文件中的所有内容都是带有ImageView的AnchorPane,其中包含png图像

例

我到处寻找,但找不到任何解决方案,任何帮助将不胜感激.谢谢

java transparency javafx splash-screen javafx-2

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

如何使用不同的fxml文件创建多个javafx控制器?

我一直在看一些博客和其他stackoverflow问题,我没有看到我的问题的直接答案.我正在创建一个javafx gui客户端,我希望我的菜单栏在一个fxml中是一个控制器,然后我希望内容区域是额外的fxml文件.登录屏幕将是一个fxml,登录屏幕将是应用程序的主要内容,并将在一个fxml中.我该怎么做呢?

我只是不想在同一个文件中拥有我的登录,菜单栏和主要内容的所有代码.这是我正在做的工作的图像:

在此输入图像描述

java controller javafx javafx-2 fxml

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