0

これは私がメソッドを呼び出す方法です:

initButton(0, 0, 150, 50, "button.png", "PNG");

これは方法です:

private void initButton(float x, float y, float width, float height, String imageFileName, String imageFileType) {
    buttonImages.add(loadResClass.loadTextures(imageFileType, imageFileName));
    buttonFloats.add(new Vector4f(x, y, width, height));
    float mouseX = Mouse.getX();
    float mouseY = Mouse.getY() - Display.getHeight();
    if(mouseY < 0){
        mouseY = mouseY * -1;
    }

    if(mouseX > x && mouseY > y && mouseX < x+width && mouseY < y+height){ 
        //do something
    }
}

initButton を呼び出すときに、いくつかのコードを引数として設定し (または同様のことを行い)、//do somethingコメントの代わりに initButton メソッドにコードを配置します。

4

2 に答える 2

1

戦略パターンを使用して、実行時にいくつかの動作を構成できます。このメソッドは、ストラテジー オブジェクトをパラメーターとして受け取ります。例えば:

private void initButton(float x, float y, float width, float height, String imageFileName, String imageFileType, Strategy strategy) {
    // ...

    if(mouseX > x && mouseY > y && mouseX < x+width && mouseY < y+height){ 
        strategy.doWork();
    }
}

そして、次のように呼び出します。

initButton(0, 0, 150, 50, "button.png", "PNG", new SpecificStrategy());
于 2012-05-20T14:24:08.783 に答える
0

Swing の場合は、ActionListener または AbstractAction を渡すことができます。他の GUI ライブラリの場合は、Runnable、Future、またはコードを挿入できる他のインターフェイスを渡します。

これは何のライブラリですか?

編集1
あなたは次のように述べています:

私はGUIライブラリを使用していません。

しかし、それが Swing であろうと、Android であろうと、あるいはそのようなものであろうと、確かにあなたはそうです。

編集2
あなたは次のように述べています:

GUI ライブラリは使用していません。LWJGLでクワッドを描いています

次にRunnable、この状況で a を使用することをお勧めします。マウスの位置を聞く方法はわかりませんが...

于 2012-05-20T14:16:47.987 に答える