0

次のCodesnippletはnullpointerexceptionをスローし。これは、findByNameメソッドによってスローされます。PlayerComponentGroupListが見つからなかったようですが、理由はわかりません。

グループをどのように参照できますか?

protected void beforeMain(Form f) {
    super.beforeMain(f);
    try {
        findPlayerComponentGroup(f).addComponent(getItems("Player"));
    } catch (IOException ex) {
        throw new RuntimeException(ex.getMessage());
    }

}

private Container getItems(String order) throws IOException {
...
final Container rows = new ComponentGroup();
...
rows.setName("PlayerComponentGroupList");
    return rows;
}

protected void onMain_PlayerContainerButtonSortNameAction(Component c, ActionEvent event) {
    super.onMain_PlayerContainerButtonSortNameAction(c, event);
    try {
        findPlayerComponentGroup().removeComponent(findByName("PlayerComponentGroupList", Display.getInstance().getCurrent())));
...
}
4

1 に答える 1

0

findByName()そのようには機能しません。GUIビルダーによって作成されたコンポーネントに対してのみ機能するため、非常に高速です(そうでない場合は、非常に低速なコンポーネントツリーを再帰的に検索する必要があります)。

コンポーネントへのポインタを保持して削除する必要があります。

于 2013-02-20T17:58:37.620 に答える