我已经下载了支持Java 12的netbeans 11,所以我从运行JavaFX和Netbeans Non module with Maven的Gluon网页上进行了后续操作> https://openjfx.io/openjfx-docs/#next-steps
我已按照说明中的说明配置了运行此应用的操作。
运行Project clean javafx:run
但是没有指定任何调试项目的内容。有没有办法调试这个javaFX项目?
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>SimonSaysGFX</artifactId>
<version>1.0.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>12</maven.compiler.source>
<maven.compiler.target>12</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>12.0.1</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-media</artifactId>
<version>12.0.1</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>12.0.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>12</release>
</configuration>
</plugin>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>0.0.2</version>
<configuration>
<mainClass>com.mycompany.simonsaysgfx.App</mainClass>
</configuration>
</plugin>
</plugins>
</build>
<name>SimonSaysGFX</name>
</project>
Run Code Online (Sandbox Code Playgroud) 我正在关注OpenJFX 的源代码。唯一PathIterator支持SEG_LINETO, SEG_QUADTO, SEG_CUBICTO,即直线和二次/三次 B\xc3\xa9zier 曲线。ArcIterator并EllipseIterator返回SEG_CUBICTO,这意味着它将使用三次 B\xc3\xa9zier 曲线段。由于三次 B\xc3\xa9zier 曲线无法准确表示椭圆,因此我认为 Javafx 椭圆和弧不是真实的,而是实际上的近似值。这是正确的吗?
我正在使用 Java 20、JavaFX 20 和 Maven 创建一个小型个人项目。我在创建可重用组件并通过主场景的控制器操作它们时遇到问题。
首先,我按照官方文档中列出的步骤进行操作。之后,我转到 SceneBuilder 并在 SceneBuilder 中导入自定义组件的 FXML 文件(单击小引擎图标,其中显示“库”-> JAR/FXML Manager -> 从文件系统添加库/FXML)并将其添加到就像使用任何默认组件一样的场景。然后,我为自定义组件提供了一个 fx:id 并将其添加到场景的控制器类中,以便我可以使用它,但出现以下错误。
Exception in Application start method
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:119)
at java.base/java.lang.reflect.Method.invoke(Method.java:578)
at javafx.graphics@20/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:464)
at javafx.graphics@20/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:578)
at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1081)
Caused by: java.lang.RuntimeException: Exception in Application start method
at javafx.graphics@20/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:893)
at javafx.graphics@20/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
at java.base/java.lang.Thread.run(Thread.java:1623)
Caused by: javafx.fxml.LoadException:
/C:/Users/user/Desktop/eclipse-workspace/Project 3/target/classes/app/views/fxml/Menu.fxml:43
at javafx.fxml@20/javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2722)
at javafx.fxml@20/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2700)
at javafx.fxml@20/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2563)
at javafx.fxml@20/javafx.fxml.FXMLLoader.load(FXMLLoader.java:2531)
at app/app.Main.loadFXML(Main.java:29)
at app/app.Main.start(Main.java:17)
at javafx.graphics@20/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:839)
at javafx.graphics@20/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:483)
at javafx.graphics@20/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:456)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:400) …Run Code Online (Sandbox Code Playgroud) JavaFX/ OpenJFX的最新版本(19、20 等)是否使用为 macOS 上的 Java 构建的新Metal渲染来取代 OpenGL?
这个新管道成为Java 19 中的默认管道。
上下文:尝试使用OpenJdK11和OpenJFx11创建一个简单的JavaFx应用程序
问题:尝试执行时出现以下错误
Error: JavaFX runtime components are missing, and are required to run this application
Run Code Online (Sandbox Code Playgroud)
我提到了Link1和Link2。我还提到了“ JavaFx11入门”- 链接 正如我在尝试指定运行配置时在入门中所建议的那样,我收到一条消息,如下所示
run' in 'build' cannot be applied to '(groovy.lang.Closure)' less... (Ctrl+F1)
Run Code Online (Sandbox Code Playgroud)
希望面临的问题是明确的,并等待我出问题的地方。(使用IntelliJ ide)
码:
主-
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("/Sample.fxml"));
StackPane stackPane = new StackPane(root);
Scene scene = new Scene(stackPane);
primaryStage.initStyle(StageStyle.TRANSPARENT);
primaryStage.setScene(scene);
primaryStage.show();
}
}
Run Code Online (Sandbox Code Playgroud)
FXML-
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane xmlns="http://javafx.com/javafx" …Run Code Online (Sandbox Code Playgroud) 我想将 openjfx 集成到我的 Java 11 代码中。在 Windows 10 上使用 IntelliJ IDEA 2018.2.6,我创建了一个测试项目并尝试了下面的代码
import javafx.embed.swing.JFXPanel;
import javafx.scene.Scene;
import javafx.scene.control.TabPane;
public class Java11FXTestApplication {
public static void main(String[] args) {
JFXPanel dummyPanel;
TabPane dummyTabPane;
Scene dummyScene;
System.out.println("Creating JFX Panel");
dummyPanel = new JFXPanel();
System.out.println("Creating TabPane");
dummyTabPane = new TabPane();
System.out.println("Creating Scene");
dummyScene = new Scene(dummyTabPane);
System.out.println("Setting Scene");
dummyPanel.setScene(dummyScene); //Freezing here
System.out.println("Scene Created");
}
}
Run Code Online (Sandbox Code Playgroud)
此代码在 setScene() 方法调用中冻结。我尝试调试它,发现它的代码在 JFXPanel.setScene 方法中的 secondaryLoop.enter() 调用中无限期地等待。任何想法为什么?
此代码在 JDK-8 中运行良好,但不适用于 java-11.0.1。
我对这个问题一无所知,有点卡在 Java11 JavaFX 问题上。代码有问题吗?或任何报告的 javafx for java11 …
我收到错误
java.awt.HeadlessException: null
at java.desktop/java.awt.Desktop.getDesktop(Desktop.java:306) ~[na:na]
Run Code Online (Sandbox Code Playgroud)
打电话时
Desktop.getDesktop().open(pdfFile);
Run Code Online (Sandbox Code Playgroud)
我正在使用此版本的 OpenJDK
java 10.0.2 2018-07-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)
Run Code Online (Sandbox Code Playgroud)
和 OpenJFXjavafx-sdk-11在MacOS 10.14.2.
为什么 JVM 在 MacOS 上以无头模式运行?如何在没有无头模式的情况下运行它?
我已经构建executable jar使用NetBeans IDE 11.0但是当我打开 jar 使用时:
hemlata@hemlata-pc:~/NetBeansProjects/Sizing/dist$ java -jar Sizing.jar
Run Code Online (Sandbox Code Playgroud)
我越来越
Error: JavaFX runtime components are missing, and are required to run this application
Run Code Online (Sandbox Code Playgroud)
我使用的是OpenJDK 11和OpenJFX 11上Debian 10
我已经添加modules了 vm option
--module-path /usr/lib/jvm/openjfx11/lib/ --add-modules javafx.controls,javafx.fxml
Run Code Online (Sandbox Code Playgroud)
但这不是问题。
那么如何配置JavaFX runtime components缺少的呢?
我正在尝试从 fxml 文件填充示例 javafx TableView。
这是我的控制器方法:
public class TestController implements Initializable {
@FXML private TableView<user> tableView;
@FXML private TableColumn<user, String> UserId;
@FXML private TableColumn<user, String> UserName;
public void initialize(URL location, ResourceBundle resources) {
UserId.setCellValueFactory(new PropertyValueFactory<user, String>("userId"));
UserName.setCellValueFactory(new PropertyValueFactory<user, String>("userName"));
tableView.getItems().setAll(parseUserList());
}
private List<user> parseUserList(){
List<user> l_u = new ArrayList<user>();
user u = new user();
u.setUserId(1);
u.setUserName("test1");
l_u.add(u);
u.setUserId(2);
u.setUserName("test2");
l_u.add(u);
u.setUserId(3);
u.setUserName("test3");
l_u.add(u);
return l_u;
}
}
Run Code Online (Sandbox Code Playgroud)
和 fxml 文件:
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="369.0" prefWidth="505.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="viewmodel.TestController …Run Code Online (Sandbox Code Playgroud) 高版本的 openjfx 可以和低版本的 jdk 一起使用吗?例如,我想同时使用 AdoptOpenJDK 11.0.6 和 OpenJFX 13.0.2,这样做是否可能/建议?