我正在通过创建JPanel的子类来为简单游戏创建GUI。我决定创建自己的按钮,点击后会执行某些操作。但是,从根本上说,每个按钮在按下时应该与几乎所有其他按钮有所不同。
我应该如何为每个按钮分别执行操作?想到的最直接的解决方案是为我制作的每个按钮创建一个不同的类,但是这似乎不是正确的OOP和按钮创建的工作方式,是否有更好的方法来实现这一点?
答案 0 :(得分:1)
即使你使用自己的按钮,你仍然可以调整swing JButton
使用的模式。使用JButton
,您可以使用单独的ActionListener
类来执行操作(如果添加更多侦听器,则可以使用多个操作)。通过这种方式,您可以拥有一个共同的按钮类,该类负责其设计并可单击,但将任何交互委托给侦听器。点击一下,它就会调用所有动作监听器的actionPerformed
方法来执行实际操作。
在挥杆设置中,按钮看起来像这样:
JButton button = new JButton();
ActionListener action = new ActionListener() {
@Override
public void actionPerformed( ActionEvent e ) {
// do something
}
};
button.addActionListener(action);
当然,您没有管理多个动作侦听器,每个按钮使用一个动作就足够了。