微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

创建新的 NetBeans“另存为”模块

如何解决创建新的 NetBeans“另存为”模块

我的目标很简单 - 在 NetBeans 编辑器中保存当前的 HTML 文件,在文件的顶部和底部添加一行,扩展名为“.h”。

这是我第一次尝试 NetBeans 模块,但根据一些教程和研究,当您在编辑器中右键单击 HTML 文件时,我已将条目添加到弹出菜单中。它目前只显示“Hello World”消息:

enter image description here

执行此操作的代码在这里

package ksmiller99.savehtmlasarduinoresource;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
import org.openide.awt.ActionID;
import org.openide.awt.ActionReference;
import org.openide.awt.ActionRegistration;
import org.openide.util.NbBundle.Messages;

@ActionID(
        category = "Edit",id = "ksmiller99.savehtmlasarduinoresource.SaveHtmlAsArduinoresource"
)
@ActionRegistration(
        displayName = "#CTL_SaveHtmlAsArduinoresource"
)
@ActionReference(path = "Editors/text/html/Popup")

@Messages("CTL_SaveHtmlAsArduinoresource=Save as Arduino Resource")
public final class SaveHtmlAsArduinoresource implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent ev) {
        //todo add a line to top and bottom of current file and save with .h extension
        JOptionPane.showMessageDialog(null,"Hello Save As World");
    }

}

如何访问当前编辑器的内容?不同的方法会更有意义吗?

我使用的是 NetBeans 12.0、JDK 13、Windows 10。

解决方法

使用新建操作向导为 Conditionally Enabled 操作创建源代码,在 User Selects One Node 时启用。

在第二个向导面板中,选择 File Type Context Menu 并选择 text/html 作为内容类型。如果您希望您的操作仅出现在上下文菜单中,您可以禁用 Global Menu Item

你应该得到这样的代码:

@ActionID(
        category = "File",id = "org.test.TestHtmlAction"
)
@ActionRegistration(
        displayName = "#CTL_TestHtmlAction"
)
@ActionReference(path = "Loaders/text/html/Actions",position = 0)
@Messages("CTL_TestHtmlAction=TestHtmlAction")
public final class TestHtmlAction implements ActionListener
{

    private final DataObject context;
    private static final Logger LOGGER = Logger.getLogger(TestHtmlAction.class.getName());

    public TestHtmlAction(DataObject context)
    {
        this.context = context;
    }

    @Override
    public void actionPerformed(ActionEvent ev)
    {
        FileObject file = context.getPrimaryFile();
        LOGGER.info("context=" + context.getName() + " file.getPath()=" + file.getPath());
    }
}

向导会创建上下文感知操作,仅当用户选择单个 HTML 文件节点时才启用该操作。 DataObject 参数为您提供所选节点的上下文,因此您可以检索文件路径等。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?