我有一个基于Swing的UI的大型Java应用程序,它使用JavaFX来渲染视频面板和WebView面板,这些面板是通过JFXPanel组件在一些窗口中呈现的。
JDK 8的一切都很好,但我正在迁移到OpenJDK 12和JavaFX12,在创建JFXPanel时遇到运行时异常。当我调用“new JFXPanel()”时,我得到一个异常:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalAccessError: class
javafx.embed.swing.JFXPanel (in unnamed module @0x44bebd15) cannot access
class com.sun.javafx.logging.PlatformLogger (in module javafx.base) because
module javafx.base does not export com.sun.javafx.logging to unnamed module
@0x44bebd15
javafx-sdk-12.0.2中的javafx.base和javafx.swingjar文件包含在我的Eclipse项目和运行时中(以及其他一些JavaFX jar)。
我正在使用VM参数:--module path/Library/Java/javafx-sdk-12.0.2/lib--添加模块javafx.controls、javafx.web、javafx.media、javafx.base
这是JavaFX 12中的错误还是我做错了什么?
htmlPanel = new JFXPanel() {
public Dimension getPreferredSize() {
return new Dimension(CoreDrawer.scaledSize(width),
CoreDrawer.scaledSize(height));
}
public Dimension getMinimumSize()
{
return getPreferredSize();
}
};
Platform.runLater(new Runnable() { // run on the JavaFX thread
public void run() {
initFX(htmlPanel);
}
});
Platform.setImplicitExit(false);
thePanel.add(htmlPanel);
函数initFX()向JFXPanel添加了一个场景,但是程序没有通过“新JFXPanel()”
public class Main extends Application{
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.initStyle(StageStyle.TRANSPARENT);
Parent root=FXMLLoader.load(Main.class.getResource("../../../com/chatbot/view/chatgui.fxml"));
Scene scene=new Scene(root);
scene.setFill(Color.TRANSPARENT);
primaryStage.setScene(scene);
primaryStage.show();
}
public static synchronized void main(String[] args) throws InterruptedException {
InterfaceGraphiqueAuth fen = new InterfaceGraphiqueAuth();
while(!fen.getFx()){
try{
Thread.currentThread().wait();;
}catch(Exception exc){}
}
launch(args);
}
}
我不能修复这个异常,所以我使用了这个替代方案。InterfaceGraphiqueAuth是一个摇摆应用程序,当它结束时,它将我命名为fx的布尔值设置为false,因此getFx返回false,javafx窗口打开。我添加了等待方法,以等待摇摆应用程序将布尔fx设置为false。
这是InterfaceGraphiqueAuth中发生的情况:
if((loginTF.getText().compareTo(compte.getUsername()) == 0)&& (passwordTF.getText().compareTo(compte.getCode()) == 0)){
//le compte existe dans la base de donn�es
k=true;
prenom=compte.getPrenom();
lastname=compte.getNom();
sexe=compte.getSexe();
}
}
if(k){
dispose();
fx=true;
}
else JOptionPane.showMessageDialog(null, "Echec");
Slaw的注释“使用-添加模块javafx.web、javafx.media、javafx.swing”为我工作。需要将javafx.swing附加到运行配置的VM选项。
我们应该处理的XML消息的格式如下: 收到的例外: javax。xml。绑定解组异常:意外元素(uri:,本地:“ns0:MessageType”)。预期的元素是 上述异常发生在com中。xmlprocessor。MessageParser类。上述课程中的代码过去是这样的(并且已经工作了很长时间): 事实证明,这会给你带来XXE的坏情况。所以我们尝试了许多非常相似的东西DocumentBuilde
问题内容: 我刚遇到JavaFX和Swing的怪异之处。 处置已添加到JFrame或JPanel的JavaFX Panel时,重新添加新的JFXPanel将引发IllegalStateException:“已调用Platform.exit”。 就我而言,这是在我删除了一些内部带有JFXPanels的JPanels,然后尝试重新添加它们之后发生的。 问题答案: 幸运的是,我在Oracle论坛上找到了
我目前正在开发我的第一个游戏(我不会无耻地推广),但我正试图建立一个排行榜,但当我尝试初始化我的GameHelper时,我得到了一个例外。我找不到任何答案,如果有任何帮助,我将不胜感激。 代码: 我收到的错误是 “java.lang.RuntimeException:无法实例化活动组件信息{com.aidanstrong.runner/com.aidanstrong.runner.AndroidL
我很难知道如何将我的JFXPanel(它是一个mp3播放器)集成到一个现有的Swing应用程序中,该应用程序是一个JFrame,其中添加了几个不同的JPanel。我对JavaFX是一个完全的noob,它与Swing非常不同。 我能够得到下面的代码来运行和做我想做的事情。它将播放mp3文件从一个目录,我有他们包含在。这是某人编写的示例中的代码。我的问题是,这段代码创建了JFrame,有main方法和
我在Swing应用程序中使用JavaFX,带有JFXPanel。我一直在使用css文件手动编码JavaFXUI。我正在使用NetBeans 8.1。 我想知道,在这种情况下,我可以使用JavaFX场景生成器生成UI吗?好的,输出是代表UI组件的FXML文件。这与JFXPanel使用JavaFX的方式兼容吗? 谢谢
我正在尝试运行MipSdk-Pol 获取策略失败,请求失败,http状态代码:204 当使用用户凭证运行预编译文件API示例时,也会发生同样的情况: 据我所知,我有一个E5试用版,策略和标签都设置正确。我很乐意得到任何建议,谢谢!