gpt4 book ai didi

java - OOP不同的对象需要运行不同的方法(Java)

转载 作者:行者123 更新时间:2023-12-01 12:14:26 27 4
gpt4 key购买 nike

我正在通过创建 JPanel 的子类来为简单游戏创建 GUI。我决定创建自己的按钮,单击时会执行某些操作。然而,从根本上讲,每个按钮在按下时应该执行与几乎所有其他按钮不同的操作。

我应该如何为每个按钮提供单独的操作?我想到的直接解决方案是为我制作的每个按钮创建一个不同的类,但是从面向对象编程和按每个按钮创建工作的角度来看,这似乎并不正确,有没有更好的方法来实现这一点?/p>

最佳答案

即使您使用自己的按钮,您仍然可以采用 swing 的 JButton 使用的模式。 。使用 JButton,您可以使用单独的 ActionListener 类来执行操作(如果添加更多监听器,则可以执行多个操作)。通过这种方式,您可以拥有一个公共(public)按钮类,负责其设计和可点击,但将任何交互委托(delegate)给监听器。单击时,它只会调用所有操作监听器的 actionPerformed 方法来执行实际操作。

在 swing 中设置按钮如下所示:

JButton button = new JButton();
ActionListener action = new ActionListener() {
@Override
public void actionPerformed( ActionEvent e ) {
// do something
}
};
button.addActionListener(action);

当然,您不必管理多个操作监听器,每个按钮使用一个操作可能就足够了。

关于java - OOP不同的对象需要运行不同的方法(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27098382/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com