Sef*_*efu 2 java parameters methods reference function
这很难说,但我需要能够将特定方法链接到对象.更具体地说,我正在制作面向图形的GUI,我希望能够将任意方法指定为元素的默认"动作"功能,例如按钮.
也就是说,我创建了这些基本上具有绘制自己能力的界面"图形"对象.我希望他们能够处理自己的行为,所以我可以做一些像这样的事情:
GraphicObject b1 = new Button();
GraphicObject b2 = new Button();
b1.assignDefaultAction(---some method reference here--);
b2.assignDefaultAction(---a different method reference here--);
Run Code Online (Sandbox Code Playgroud)
然后,如果我做了类似的事情:
b1.action();
b2.action();
Run Code Online (Sandbox Code Playgroud)
每个元素将独立调用自己的引用方法.我相信这可以用C++做,但我还没有在Java中看到它.它甚至可能,还是有某种解决方法?我试图避免的事情是必须为我需要做的每一件小事创建特定的抽象,或者丢弃我的包含一百个看起来凌乱的规格的JPanel.
谢谢你的帮助.
按钮应该使用ActionListener实现.在特定情况下坚持使用Swing.
您自己的类可以跟随并从命令模式界面开始:
public interface Command {
public void execute(Map<String, Object> parameters);
}
Run Code Online (Sandbox Code Playgroud)
或者更好的想法是坚持使用JDK提供的API并尝试Callable.