2017-06-09 74 views
0

我會形成新的問題。我可以做一個方法,它會執行它的參數

這是我現在有(LWJGL不是一個JButton):

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; 
} 

而這就是我的主類

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

,所以我不希望這是幾個,如果在我的主要發言。但它總是不同的,我想要做的,如果按鈕被點擊。所以我的問題是,如果有辦法做這樣的事情。如果你仍然不知道我是什麼意思,我只是想刪除帖子。

+5

請參加Java課程或閱讀Java編程入門書。 –

+1

如果你問是否可以參數化方法,那麼答案是肯定的...。提供你是一個定義它們的方法。 –

+0

你想要一個方法作爲參數嗎? – csmckelvey

回答

1

您可以使用接口/λ的方法傳遞到另一個方法。例如:

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"); 
     } 
    }); 
+0

你能解釋它的功能和工作原理嗎? –

-3

你的意思有些事情是這樣的:

public static void doSmth(String value) { 
    System.out.println(value); 
} 
//When you call it 
doSmth("Hello world"); 
相關問題