IntelliJ 编辑器插件实现 - jtextpane 不可编辑

IntelliJ editor plugin implement - jtextpane is not editable

提问人:hyelie 提问时间:11/17/2023 最后编辑:hyelie 更新时间:11/17/2023 访问量:33

问:

我正在实现一个 IntelliJ 插件。我的代码继承了 FileEditor,当我以格式打开文件时,它将创建一个多行 JTextPane 来接受用户的输入。.md

我已经成功打印了多个JTextPane。正如我所希望的那样,当屏幕上显示多个 JTextPane 并且有边距时,它们会粘在顶部显示。

但是,当我运行代码时,它会输出几个字符串,但它们是不可编辑的。帮助。asdf

public class MyEditor implements FileEditor {
    List<Block> list = new LinkedList<>();
    Box interiorPanel = Box.createVerticalBox();
    JPanel wrapper = new JPanel( new BorderLayout() );
    JScrollPane scrollPane = new JScrollPane(wrapper);

    public MyEditor(Project project, VirtualFile file) {
        wrapper.add(interiorPanel, BorderLayout.PAGE_START);

        for(int i = 0; i<4; i++){
            Block block = new Block();
            block.setText("asdf");
            block.setEditable(true);
            list.add(block);
        }
    }

    @Override
    public @NotNull JComponent getComponent() {
        for(JTextPane elem : list){
            elem.setEditable(true);
            interiorPanel.add(elem);
        }

        return scrollPane;
    }

    ...

Block 只是从 JTextPane 继承而来的。

public class Block extends JTextPane {
    // nothing here yet
}

IntelliJ 中的输出图像

执行结果如上图所示。它们是可编辑的。

我尝试在 Java 中运行相同的代码,看看使用 swing 组件是否有问题,并且那里的输出很好。如下图所示,光标显示效果很好,文字可以在这里编辑。

Java Swing 中的输出图像

我不知道为什么会出现这种差异。请帮帮我...

Java Swing 用户界面 intellij-plugin

评论


答: 暂无答案