創建自定義組件

有時候你希望創建獨特的物品展示,又或者創建特殊的輸入組件以綁定特定的數值類型,僅限框架內置的組件可能無法滿足你的需要。考慮到這點,本框架提供了組件接口,讓你可以創建你自己的組件,供給自己甚至他人使用。

要創建組件,必須要先創建生成組件的對外接口——組件工廠。

架設你欲創建一個密碼輸入組件,你需要創建一個 接口 繼承 ComponentFactory<T> 並自定義其建造方法。

// 密碼輸入組件
public interface PasswordFieldFactory extends ComponentFactory<PasswordFieldFactory> { // 繼承 ComponentFactory

    // 綁定屬性。由於是密碼,所以沒有初始數值。
    PasswordFieldFactory bindInput(String field);

    // 顯示密碼文字
    PasswordFieldFactory showPasswordTxt(String show);

    // 隱藏密碼文字
    PasswordFieldFactory hidePasswordTxt(String hide);

    // 設置密碼混淆類型
    PasswordFieldFactory hashType(HashType type);

    // 設置標題顯示
    PasswordFieldFactory label(String label);
    
    // 設置輸入提示訊息
    PasswordFieldFactory inputMessage(String input);

    // 設置無效提示訊息
    PasswordFieldFactory invalidMessage(String invalid);
    
    // 設置 regex 來規限密碼格式
    PasswordFieldFactory regex(String regex);
    
    // 設置等待最大輸入時間
    PasswordFieldFactory maxWait(long maxWait);
    
    // 設置禁用組件
    PasswordFieldFactory disabled();
    
    // hash類型
    enum HashType {
        SHA_256, MD5
    }

}

接口創建完成後,就可以開始創建實作類別。

為了使創建組件工廠更簡單,框架內置了抽象類別 AbstractComponentFactory<T>。透過繼承它,創建組件工廠將會更快捷簡單。

接著,創建一個 PasswordField 組件,但這次將不需要創建接口。而同樣,為了使創建組件更簡單,框架內置了抽象類別 AbstractComponent<T>

密碼輸入組件除了需要監聽玩家輸入外,還需要可點擊以切換密碼顯示狀態。因此,我們需要實作 Listenable<T>Clickable

然後,回到組件工廠實作創建方法。

最後,獲取 MVCInstallation 並註冊你的組件。

然後,就可以開始使用:

由於大部分屬性都已經賦予了默認數值,因此使用者可以只調用他們需要的建造方法。

使用演示

最后更新于

这有帮助吗?