在NetBeans

时间:2017-05-26 13:00:48

标签: java netbeans netbeans-platform

我目前正在为NetBeans开发一个插件(简而言之,我的目标是将我公司的工具集成到NetBeans),我认为在小部件栏上放一个小工具来判断我的工具是否已启用或者不

我看到了关于小部件按钮的Geertjan blog post ,但他所做的是启用/禁用按钮,我想要做的是更改图标以通知用户工具状态,以及何时点击它打开/关闭工具。

它可以在NetBeans上使用吗?

我尝试将layer.xml iconbase属性更改为动态更改此方法的方法,但它似乎不起作用,至少在我尝试的时候(<attr name="iconBase" stringvalue="TWIconWidget.CTCIcon.getIconPath"/>

我还尝试在小部件的ImageWidget上使用actionPerformed()广告,但我找不到在小工具栏中看到它的方法。

你有关于如何做到这一点的任何提示吗?

提前致谢

编辑: 如果不可能,您可以提供一些替代方案,例如slide button或某些可以满足需求并在小工具栏上可见的内容

1 个答案:

答案 0 :(得分:1)

这篇文章展示了一种方法(作者Hermien Pellissier的作品):http://www.pellissier.co.za/hermien/?p=646

基本上,您使用Netbeans向导创建Action并将其修改为从AbstractAction扩展并实施Presenter.Toolbar

然后,您可以覆盖getToolbarPresenter()以返回要在工具栏中显示的任何Component,例如JButton或自定义组件。

使用Component方法可以更改其外观,例如:

public final class SomeAction extends AbstractAction implements Presenter.Toolbar {

    private JButton button;

    @Override
    public void actionPerformed(ActionEvent e) {
        // change the button image
        ImageIcon icon = new ImageIcon("another_image.png");
        button.setIcon(icon);
    }

    @Override
    public Component getToolbarPresenter() {
        ImageIcon icon = new ImageIcon("image.png");

        // create the button to show
        button = new JButton(icon);
        button.addActionListener(this);

        return button;
    }
}