javafx hinzufügen-Taste, um grid-Bereich
Ich bin hinzufügen-Taste, um den Bereich raster dynamisch, aber nach der Abgabe der Funktion Sie alle zeigen die gleiche Funktion und ich weiß nicht warum?
import java.awt.Panel;
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.Button;
import javafx.scene.layout.GridPane;
public class TestController implements Initializable {
@FXML
Panel mpanel;
@FXML
GridPane gpnael;
int x=0,y=0,i=0,y1=0;
/**
* Initializes the controller class.
*/
@Override
public void initialize(URL url, ResourceBundle rb) {
//TODO
}
@FXML
private void add(ActionEvent event) {
y1++;
Button temp = new Button("Button " + i);
temp.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
System.out.println("button"+y1);
}
});
gpnael.add(temp,i++,1);
}
}
nun habe ich aufgenommen, drei-Tasten-zu-grid-Bereich, wenn ich auf jeder Taste zeigen Sie die gleiche Ausgabe.
Ich möchte, dass Sie alle zeigen unterschiedliche Ausgaben als zugewiesen .
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie nicht, es zu definieren in die Tasten, Sie sind immer mit einem nicht final int zum Ausdruck zu bringen Ihre Werte, die Sie sollten versuchen, machen Sie mit eindeutiger Werte oder eine id für jede Schaltfläche und rufen Sie den Wert aus der id:
Und wenn Sie wollen, um die Verwendung von lambda-Ausdrücken: