簡體   English   中英

OOP不同的對象需要運行不同的方法(Java)

[英]OOP different objects need to run different methods (Java)

我正在通過創建JPanel的子類來為簡單的游戲創建GUI。 我決定創建自己的按鈕,這些按鈕在單擊時會執行某些操作。 但是,從根本上講,每個按鈕在按下時應執行的操作幾乎與所有其他按鈕不同。

我應該如何給每個按鈕一個單獨的動作? 我想到的直接解決方案是為我制作的每個按鈕創建一個不同的類,但是在OOP方面和每個按鈕創建方面看來並不正確,是否有更好的方法來實現?

即使您使用自己的按鈕,您仍然可以調整swing的JButton使用的模式。 使用JButton您可以使用單獨的ActionListener類來執行操作(如果添加更多偵聽器,則可以執行多個操作)。 這樣,您可以擁有一個通用的按鈕類,該類負責其設計和可單擊性,但將所有交互委托給偵聽器。 單擊時,它將僅調用所有動作偵聽器的actionPerformed方法來執行實際動作。

在揮桿設置中,按鈕如下所示:

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

當然,您不必過多地管理多個動作偵聽器,每個按鈕使用一個動作就足夠了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM