2017-06-09 7 views
0

私は新しい質問を形成します。実行する引数を取るメソッドを作ることができます

これは私が現在(JButtonのないLWJGL)持っているものです。私のメインクラスで

public static boolean isButtonClicked(String buttonName){ 
    Button b = getButton(buttonName); 
    float mouseY = essentials.Boot.HEIGHT - Mouse.getY() - 1; 
    if (Mouse.getX() > b.getX() && Mouse.getX() < b.getX() + b.getWidth() && 
     mouseY > b.getY() && mouseY < b.getY() + b.getHeight()){ 
     return true; 
    } 
    return false; 
} 

とのthats

if(Ui.isButtonClicked("buttonName")/*Takes a name of a button as a argument*/){ 
     System.out.println(); 
} 

だから私は、私のメインであれば、いくつかの文があるといけません。しかし、そのボタンがクリックされた場合、私は何をしたいのかは常に異なっています。だから私の質問は、このようなことをする方法があるかどうかです。あなたがまだ私が何を意味するのかわからないのなら、ただその投稿を削除するつもりです。

public static void doSmth(String value) { 
    System.out.println(value); 
} 
//When you call it 
doSmth("Hello world"); 
+5

Javaでクラスを受講するか、入門Javaプログラミングブックをお読みください。 –

+1

メソッドをパラメータ化できるかどうかを尋ねる場合は、答えはyes ...です。 –

+0

メソッドをパラメータとして使用したいですか? – csmckelvey

答えて

1

あなたが別のメソッドにメソッドを渡すインタフェース/ラムダを使用することができます。

+0

あなたはそれが何を行い、どのように機能するのか説明できますか? –

-3

は、次のようないくつかのことを意味します。たとえば、

public interface Procedure { 
    void act(); 
} 
public void executeCommand(Procedure proc){ 
    proc.act(); 
} 
//... 
// pass a method using lambda expression: 
    executeCommand(()->{system.out.println("Hello world"}); 

//pass a method using traditional way (anonymous class) 
    executeCommand(new Procedure() { 

     public void act() { 
      system.out.println("Hello world"); 
     } 
    }); 
関連する問題