0
グリッドパネルを正しく設定しました。しかし、各セルにイベントハンドラを配置する方法はありますか?マウスのダブルクリックや右クリックのように。 誰かが私に例を挙げてくれますか?ありがとうございました!GridPaneセルのJavafxイベントハンドラ
グリッドパネルを正しく設定しました。しかし、各セルにイベントハンドラを配置する方法はありますか?マウスのダブルクリックや右クリックのように。 誰かが私に例を挙げてくれますか?ありがとうございました!GridPaneセルのJavafxイベントハンドラ
あなたが正確に何をしたい指定しませんが、私は、この例では、あなた
まず例(私はすべてのノードで同じイベントを追加)
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package stackover;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.GridPane;
/**
*
* @author Ala_Eddine
*/
public class FXMLDocumentController implements Initializable {
@FXML
private Label label;
@FXML
private GridPane gridPane;
@FXML
private void handleButtonAction(ActionEvent event) {
System.out.println("You clicked me!");
label.setText("Hello World!");
}
@Override
public void initialize(URL url, ResourceBundle rb) {
addGridEvent();
}
private void addGridEvent() {
gridPane.getChildren().forEach(item -> {
item.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
if (event.getClickCount() == 2) {
System.out.println("doubleClick");
}
if (event.isPrimaryButtonDown()) {
System.out.println("PrimaryKey event");
}
}
});
});
}
**}
第二の例*役立つことを願って*
private void addGridEvent() {
Button button = new Button("hi");
//You can use OnAction
button.addEventHandler(EventType.ROOT, (event) -> {
if (event.getEventType() == ActionEvent.ACTION) {
System.out.println("ActionEvent");
}
});
gridPane.getChildren().add(button);
GridPaneに追加するノードにイベントハンドラを追加します。 – ItachiUchiha