創建自定義組件
有時候你希望創建獨特的物品展示,又或者創建特殊的輸入組件以綁定特定的數值類型,僅限框架內置的組件可能無法滿足你的需要。考慮到這點,本框架提供了組件接口,讓你可以創建你自己的組件,供給自己甚至他人使用。
要創建組件,必須要先創建生成組件的對外接口——組件工廠。
架設你欲創建一個密碼輸入組件,你需要創建一個 接口 繼承 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
}
}被 UIContext 取出的 組件工廠類別 必須 為Interface,因此你有必要創建接口類別。
接口創建完成後,就可以開始創建實作類別。
為了使創建組件工廠更簡單,框架內置了抽象類別 AbstractComponentFactory<T>。透過繼承它,創建組件工廠將會更快捷簡單。
接著,創建一個 PasswordField 組件,但這次將不需要創建接口。而同樣,為了使創建組件更簡單,框架內置了抽象類別 AbstractComponent<T>。
密碼輸入組件除了需要監聽玩家輸入外,還需要可點擊以切換密碼顯示狀態。因此,我們需要實作 Listenable<T> 和 Clickable。
假若你不使用框架內置的抽象類別來創建組件/組件工廠,除了需要自行實作預設的東西之外,你還需要創建一個與框架內置抽象類別相同參數的構造器以成功初始化你的組件/組件工廠。
然後,回到組件工廠實作創建方法。
最後,獲取 MVCInstallation 並註冊你的組件。
然後,就可以開始使用:
使用演示

最后更新于
这有帮助吗?