在 NetBeans 中动态更改小部件的图标
Dynamically change icon of a widget in NetBeans
我目前正在为 NetBeans 开发一个插件(简而言之,目标是将我公司的工具集成到 NetBeans 中),我认为在小部件栏上有一个小部件会很好,以告诉我的工具是否是是否启用。
我看到Geertjan blog post 关于widget按钮,但是他做的是enable/disable按钮,我想做的是改变图标来通知用户工具状态,以及什么时候他点击它会变成 on/off 工具。
在 NetBeans 上可行吗?
我试图将 layer.xml
iconbase
属性更改为动态更改此属性的方法,但它似乎不起作用,至少在我尝试时是这样 (<attr name="iconBase" stringvalue="TWIconWidget.CTCIcon.getIconPath"/>
)
我还尝试在小部件的 actionPerformed()
上使用 ImageWidget
强制转换,但我找不到在小部件工具栏中查看它的方法。
关于如何执行此操作,您有任何提示吗?
提前致谢
编辑:
如果不可能,您能否提供一些替代方案,例如 slide button 或可以满足需要并在小部件栏上可见的东西
这个 post 展示了一种方法(致谢作者 Hermien Pellissier):http://www.pellissier.co.za/hermien/?p=646
基本上您使用 Netbeans 向导创建一个 Action
并修改它以从 AbstractAction
扩展并实现 Presenter.Toolbar
.
然后您可以将 getToolbarPresenter()
覆盖为 return 您想要在工具栏中显示的任何 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;
}
}
我目前正在为 NetBeans 开发一个插件(简而言之,目标是将我公司的工具集成到 NetBeans 中),我认为在小部件栏上有一个小部件会很好,以告诉我的工具是否是是否启用。
我看到Geertjan blog post 关于widget按钮,但是他做的是enable/disable按钮,我想做的是改变图标来通知用户工具状态,以及什么时候他点击它会变成 on/off 工具。
在 NetBeans 上可行吗?
我试图将 layer.xml
iconbase
属性更改为动态更改此属性的方法,但它似乎不起作用,至少在我尝试时是这样 (<attr name="iconBase" stringvalue="TWIconWidget.CTCIcon.getIconPath"/>
)
我还尝试在小部件的 actionPerformed()
上使用 ImageWidget
强制转换,但我找不到在小部件工具栏中查看它的方法。
关于如何执行此操作,您有任何提示吗?
提前致谢
编辑: 如果不可能,您能否提供一些替代方案,例如 slide button 或可以满足需要并在小部件栏上可见的东西
这个 post 展示了一种方法(致谢作者 Hermien Pellissier):http://www.pellissier.co.za/hermien/?p=646
基本上您使用 Netbeans 向导创建一个 Action
并修改它以从 AbstractAction
扩展并实现 Presenter.Toolbar
.
然后您可以将 getToolbarPresenter()
覆盖为 return 您想要在工具栏中显示的任何 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;
}
}