为了在JavaFX 11中创建Jasper报告,我使用了动态报告。我正在将报告加载到Swing Node中,但是只有当我单击堆栈窗格区域时,才会显示Jasper报告,并且只有将鼠标悬停在所有这些组件上时,所有其他组件才可见。组件和报告内容不会立即加载,而不是在鼠标悬停时显示,并且在“堆栈窗格”上滚动时显示报告。
因为这是Java 8中的错误,似乎已经解决,但是在Java 11中,我也遇到了同样的问题。
更新资料
由于我没有得到任何回应,并且按照kleopatra的建议,我创建了最少的可复制代码。请调查一下。
JavaFxJasperReportsDemo.java
package demo;
import java.util.ArrayList;
import java.util.List;
import javax.swing.SwingUtilities;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.embed.swing.SwingNode;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.stage.WindowEvent;
import net.sf.dynamicreports.jasper.builder.JasperReportBuilder;
import net.sf.dynamicreports.report.builder.DynamicReports;
import net.sf.dynamicreports.report.builder.column.Columns;
import net.sf.dynamicreports.report.builder.component.Components;
import net.sf.dynamicreports.report.builder.datatype.DataTypes;
import net.sf.dynamicreports.report.constant.HorizontalTextAlignment;
import net.sf.dynamicreports.report.exception.DRException;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.swing.JRViewer;
public class JavaFxJasperReportsDemo extends Application{
@FXML
private StackPane stackPane;
public void start(Stage stage) throws Exception{
try{
System.out.println("Hello"); …Run Code Online (Sandbox Code Playgroud) 作为C#中的新手,想知道为什么ObjectC#类有两个 Equals带有以下签名的方法.
public virtual bool Equals(object obj);
public static bool Equals(object objA, object objB);
Run Code Online (Sandbox Code Playgroud)
而在Java中只有一种 equals方法.
之前我的项目曾经是Java 8,但现在我使用Java 11和JavaFX 11,现在JavaFX已经从Java 11开始与Java分离了.我没有下载JavaFX SDK但是在pom.xml中添加了以下依赖项以获取必需的模块和jar文件,它们在早期版本中曾经是Java本身的一部分.
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
但是我can not be resolved to a type在@FXML注释和FXMLLoader类上遇到了编译错误.
我是否需要添加一些其他/额外的依赖项来解决此问题?