在NetBeans中动态更改小部件的图标

问题描述:

我目前正在为NetBeans开发一个插件(简言之,目标是将我公司的工具集成到NetBeans中),并且我认为在小部件工具栏上有一个小部件告诉我的工具是否启用。在NetBeans中动态更改小部件的图标

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

它在NetBeans上可行吗?

我试图layer.xmliconbase改变属性的方法来动态改变这个,但它似乎没有工作,至少,当我试图(<attr name="iconBase" stringvalue="TWIconWidget.CTCIcon.getIconPath"/>

我也有ImageWidget投试图在actionPerformed()的小部件,但我找不到在小部件工具栏中看到它的方法。

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

在此先感谢

编辑: 如果是不可能的,能为您提供一些替代它,如slide button或东西,可以适应需求,并Widget栏上可见

这篇文章显示了一个办法做到这一点(学分笔者Hermien Pellissier):http://www.pellissier.co.za/hermien/?p=646

基本上你使用NetBeans向导创建一个Action并将其修改为从扩展并执行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; 
    } 
} 
+0

尼斯一个,试了一下,它的作品,谢谢柠了! –