我目前有一个程序,可以按一个“堆栈按钮”并创建9个堆栈(只是按钮)。但是,我希望它到每个按钮都有其自身标识的位置,因此,如果单击特定的按钮,它将带我到每个按钮的特定窗口。
这是我的代码:
private void createButtonActivate(){
System.out.println("A stack has been created");
stackCount++;
newStackButton = new Button((Integer.toString(stackCount)));
newStackButton.setOnAction(actionEvent -> {
methods.openNoteCard();
});
root.getChildren().add(newStackButton);
}
以下是创建按钮的过程:
private void createStack(){
stackCreated = true;
if (stackCount < 3 ) {
createButtonActivate();
buttonXPos = buttonXPos + 150;
}
else if (stackCount >= 3 && stackCount < 6){
if (stackCount == 3){
buttonXPos = 50;
buttonYPos = buttonYPos + 150;
}
createButtonActivate();
buttonXPos = buttonXPos + 150;
// buttonXPos =
}
else if (stackCount >= 6 && stackCount < 9){
if (stackCount == 6){
buttonXPos = 50;
buttonYPos = buttonYPos + 150;
}
createButtonActivate();
buttonXPos = buttonXPos + 150;
}
}
我希望我没有提供太多代码,实际上我已经彻底解释了我的问题,哈哈,谢谢您的帮助!
答案 0 :(得分:1)
如果要在单击按钮时使按钮具有独特的逻辑,则实际上可以在openNoteCard
方法中添加参数。
例如:
void openNoteCard(int stackId) {
switch (stackId) {
case 0: //logic for the first button
case 1: //logic for the second button
// and so on...
}
}
因此,在您的createButtonActive
方法中,它看起来像这样:
private void createButtonActivate(){
System.out.println("A stack has been created");
stackCount++;
newStackButton = new Button((Integer.toString(stackCount)));
newStackButton.setOnAction(actionEvent -> {
methods.openNoteCard(stackCount); // Passing a parameter here
});
root.getChildren().add(newStackButton);
}