在NetBeans中动态更改小部件的图标
问题描述:
我目前正在为NetBeans开发一个插件(简言之,目标是将我公司的工具集成到NetBeans中),并且我认为在小部件工具栏上有一个小部件告诉我的工具是否启用。在NetBeans中动态更改小部件的图标
我看到Geertjan blog post关于窗口小部件按钮,但是他所做的是启用/禁用按钮,我想要做的是更改图标以通知用户工具状态,并且当他点击它时打开/关闭工具。
它在NetBeans上可行吗?
我试图layer.xml
iconbase
改变属性的方法来动态改变这个,但它似乎没有工作,至少,当我试图(<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;
}
}
尼斯一个,试了一下,它的作品,谢谢柠了! –