2015-03-30 24 views

回答

21

button.fire()

當用戶手勢表示不應該出現該ButtonBase一個事件時,調用。

當一個按鈕被觸發時,調用該按鈕的onAction事件處理程序。

按鈕的動作,每當按鈕被觸發時調用該按鈕的動作。這可能是由於用戶用鼠標點擊按鈕,觸摸事件或按鍵,或者開發人員以編程方式調用fire()方法。

示例代碼

創建一個按鈕,並自動閃光四次。樣品的

import javafx.application.Application; 
import javafx.geometry.Insets; 
import javafx.scene.Scene; 
import javafx.scene.control.Button; 
import javafx.stage.Stage; 

import java.io.IOException; 
import java.util.stream.IntStream; 

public class RapidFire extends Application { 
    private static int nClicks = 0; 

    @Override 
    public void start(Stage stage) throws IOException { 
     // setup button and action handler. 
     Button button = new Button("Click Me!"); 
     button.setOnAction(event -> { 
      nClicks++; 
      System.out.println("Clicked " + nClicks + " times."); 
     }); 
     button.setPadding(new Insets(10)); 
     button.setPrefWidth(100); 

     // show the button. 
     stage.setScene(new Scene(button)); 
     stage.show(); 

     // fire the button a few times in succession. 
     IntStream.range(0, 4).forEach(
       i -> button.fire() 
     ); 
    } 

    public static void main(String[] args) { 
     launch(args); 
    } 
} 

輸出是:

Clicked 1 times. 
Clicked 2 times. 
Clicked 3 times. 
Clicked 4 times. 
+1

這是行不通的。火不會觸發我在其他方法中設置的Action事件。 – 2015-03-30 19:40:39

+4

適合我。除非我誤解了你的問題,否則你的代碼中可能還有其他一些問題妨礙它按照你的預期工作。 – jewelsea 2015-03-30 20:13:22

+1

@DylanLeeBlanchard:小心實現button.setOnAction()。我犯了錯誤,我已經在button.setOnMouseClicked()上實現了事件處理程序。 – stviper 2016-01-17 14:19:36

相關問題