这很难表达,但我需要能够将特定方法链接到对象。更具体地说,我正在制作一个面向图形的 GUI,我希望能够将任意方法指定为元素(例如按钮)的默认“操作”函数。
也就是说,我创建了这些基本上具有 self 绘制能力的接口(interface)“图形”对象。我希望他们处理自己的行为,所以我可以,例如,做这样的事情:
GraphicObject b1 = new Button();
GraphicObject b2 = new Button();
b1.assignDefaultAction(---some method reference here--);
b2.assignDefaultAction(---a different method reference here--);
然后,如果我做类似的事情:
b1.action();
b2.action();
每个元素都会独立调用自己引用的方法。我相信这在 C++ 中是可能的,但我还没有在 Java 中看到它。甚至有可能,还是有某种解决方法?我试图避免的事情是必须为我需要做的每一件小事创建特定的抽象,或者在我的包含 JPanel 中乱扔一百个看起来很乱的规范。
感谢您的帮助。
请您参考如下方法:
按钮应该使用ActionListener
实现。在这种特殊情况下坚持使用 Swing。
您自己的类可以效仿并从命令模式接口(interface)开始:
public interface Command {
public void execute(Map<String, Object> parameters);
}
或者更好的主意是坚持使用 JDK 提供的 API 并尝试 Callable .