簡體   English   中英

阻止用戶點擊同一個按鈕?

[英]Prevent user from clicking the same button?

我真的是 Java 新手,我在做這個項目時正在學習 javafx。單擊按鈕時,代碼將行和列發送到另一個類。 我的邏輯相應地將行和列發送到另一個類。 但我想阻止用戶點擊同一個按鈕。 我將如何去做。 我知道有一個 setDisable 函數,但如何實現它。

 for (row = 0; row < 10; row++) {
            for (coloumn = 0; coloumn < 10; coloumn++) {
                button[row][coloumn] = new Button();
              //  button[row][coloumn].setStyle("-fx-background-color: red");
                button[row][coloumn].setPrefSize(50, 50);
                button[row][coloumn].setOnAction(new clickEvents(row, coloumn));
                //no setters, directly passed rows and cols to clickEvents Class
                tileGrid.add(button[row][coloumn], row, coloumn); //adds buttons to the tile grid
                //node , row position in grid, column position in grid
            }
        } 

Revised

for (row = 0; row < 10; row++) {
            for (coloumn = 0; coloumn < 10; coloumn++) {
                button[row][coloumn] = new Button();
              //  button[row][coloumn].setStyle("-fx-background-color: red");
                button[row][coloumn].setPrefSize(50, 50);
                button[row][coloumn].setOnAction(new clickEvents(row, coloumn));
                temprow= row;
                tempcol=coloumn;
                //if(row==temprow && coloumn == tempcol )
              if(button[row][coloumn].isPressed()) {
                  button[row][coloumn].setDisable(true);
              }

                //no setters, directly passed rows and cols to clickEvents Class
                tileGrid.add(button[row][coloumn], row, coloumn); //adds buttons to the tile grid
                //node , row position in grid, column position in grid
            }

閱讀文檔

button.setDisable(true);

順便說一下,適用於從 Node 繼承的任何組件,因此您可以禁用場景中的幾乎所有內容。

創建按鈕時,設置一個名為clicked的布爾值,並初始化為 false。 當用戶單擊按鈕時,處理程序將觸發,並將布爾值設置為 true。 然后你有一些邏輯在clicked上分支。 如果為 true,則不執行任何操作(因為該按鈕之前已被禁用),如果為 false,則禁用該按鈕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM