我可以创建一个方法来接受它将要执行的参数吗
Can i make a method that takes arguments that it will execute
我会形成新的问题。
这是我目前拥有的(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;
}
这就是我的主要内容 class
if(Ui.isButtonClicked("buttonName")/*Takes a name of a button as a argument*/){
System.out.println();
}
所以我不希望在我的 main 中有多个 if 语句。但是,如果单击按钮,我想做什么总是不同的。所以我的问题是是否有办法做这样的事情。如果您仍然不明白我的意思,我将删除 post.
你的意思是这样的吗:
public static void doSmth(String value) {
System.out.println(value);
}
//When you call it
doSmth("Hello world");
您可以使用 Interface/Lambda 将一个方法传递给另一个方法。例如:
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");
}
});
我会形成新的问题。
这是我目前拥有的(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;
}
这就是我的主要内容 class
if(Ui.isButtonClicked("buttonName")/*Takes a name of a button as a argument*/){
System.out.println();
}
所以我不希望在我的 main 中有多个 if 语句。但是,如果单击按钮,我想做什么总是不同的。所以我的问题是是否有办法做这样的事情。如果您仍然不明白我的意思,我将删除 post.
你的意思是这样的吗:
public static void doSmth(String value) {
System.out.println(value);
}
//When you call it
doSmth("Hello world");
您可以使用 Interface/Lambda 将一个方法传递给另一个方法。例如:
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");
}
});