0

私はこれを行うことによって未知の量のボタンを生成しようとしています:

    for (int i = 0; i < itemsList.size(); i++) {
        final String item = itemsList.get(i);
        TButton button = new TButton("" + item, 8, 415 + (25 * i), 90, 25) {
            public void doAction() {
                System.out.println("Item: " + item);
            }
        };
        this.buttons.add(button);
    }

    for (TButton button : buttons) {
        this.framework.add(button);
    }

ただし、フレームワークは同じ名前の複数のボタンを受け入れないため、エラーが発生します。

ボタンごとにランダム/一意の名前を生成できますか?

エラー:

Exception in thread "main" java.lang.IllegalStateException: gtge.TestGame$1@32301b86     [UIName=Button, bounds=8,415,90,25] [text=Plante] already reside in another container!!!
at com.golden.gamedev.gui.toolkit.TContainer.add(Unknown Source)
at com.golden.gamedev.gui.toolkit.FrameWork.add(Unknown Source)
at gtge.TestGame.update(TestGame.java:78)
at com.golden.gamedev.Game.startGameLoop(Unknown Source)
at com.golden.gamedev.Game.start(Unknown Source)
at com.golden.gamedev.GameLoader.start(Unknown Source)
at gtge.TestGame.main(TestGame.java:96)
4

3 に答える 3

0

Javaについてはわかりませんが、vbで同様のことを行い、guidを使用guid.newguid()して新しい一意の値を作成しました。

于 2012-12-17T19:50:29.247 に答える
0

この方法を使用できますhashCode()

于 2012-12-17T19:51:07.093 に答える
0

これはトリックをしました:

    for (int i = 0; i < itemsList.size(); i++) {
        final String item = itemsList.get(i);
        TButton button = new TButton("" + item, 8, 300 + (25 * i), 90, 25) {
            public void doAction() {
                System.out.println("Item: " + item);
                //TestGame.this.test = "" + item;
            }
        };
        this.framework.add(button);
    }
于 2012-12-21T08:25:54.850 に答える