gpt4 book ai didi

intellij-idea - 使用JavaFX开发Intellij IDEA插件UI

转载 作者:行者123 更新时间:2023-12-04 00:56:30 35 4
gpt4 key购买 nike

作为自定义Intellij操作插件的结果,开发人员可以弹出带有自定义UI的对话框窗口。我正在使用嵌入到Swing面板中的JavaFX开发UI。

JavaFX明智地一切正常。问题是插件类加载器。尽管IDEA版本是12.1.3,而JDK是1.7.0_21,但它找不到任何JavaFX类。
如果我将jfxrt.jar添加为编译依赖项,则一切正常,但将标准jar与插件结合在一起听起来并不正确。

问题:将JavaFX添加为插件的依赖项的正确方法是什么?

最佳答案

三年零四个IntelliJ版本(v16)之后,我将向大家提示如何在插件开发中使用JavaFx。

例如,以下代码演示了如何使用JavaFx组件创建ToolWindow:

import com.intellij.openapi.project.Project;
import com.intellij.openapi.wm.ToolWindow;
import com.intellij.openapi.wm.ToolWindowFactory;
import javafx.application.Platform;
import javafx.embed.swing.JFXPanel;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import org.jetbrains.annotations.NotNull;

import javax.swing.*;


public class TestToolWindowFactory
implements ToolWindowFactory
{
@Override
public void createToolWindowContent(@NotNull Project project, @NotNull ToolWindow toolWindow)
{
final JFXPanel fxPanel = new JFXPanel();
JComponent component = toolWindow.getComponent();

Platform.setImplicitExit(false);
Platform.runLater(() -> {
Group root = new Group();
Scene scene = new Scene(root, Color.ALICEBLUE);
Text text = new Text();

text.setX(40);
text.setY(100);
text.setFont(new Font(25));
text.setText("Welcome JavaFX!");

root.getChildren().add(text);

fxPanel.setScene(scene);
});

component.getParent().add(fxPanel);
}
}


注意:由于 JDK-8090517,重要的是调用:

Platform.setImplicitExit(false);

关于intellij-idea - 使用JavaFX开发Intellij IDEA插件UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17092607/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com