JavaFX : How to get column and row index in gridpane?

David Kim

I tried to get the row/column index of gridpane, when I click.

I am looking for method like as getSelectedColumn() in JTable(java swing)

I searched this. gridPane.getRowIndex(node)

But it doesn't help to me. Because it need node name to get row/column index.

I make a component of grid by for grammar. So the node name is same. How can I get the value? My partial code is below.

for (int i = 0; i < imageName.length; i++) {
   try {
      img = new Image(getClass().getResourceAsStream(imageName[i]));   
   } catch (Exception e) {
      System.out.println("exception : " + e);
   }
      ImageView imageview = new ImageView(img);
      imageview.setFitWidth(40);
      imageview.setFitHeight(40);

      HBox hbox= new HBox();
      hbox.getChildren().add(imageview);
      tile1.setHgap(40);
      tile1.setVgap(40);
      tile1.add(hbox, i+2, 0);
}
Roland

Here's an example about how you could do it if you want only a mouse listener on the gridpane and not on the nodes in the cells. For simplicity I used a Label as cell node, but you can use whatever you prefer.

public class Demo extends Application {
    public static void main(String[] args) {
        Application.launch(args);
    }

    @Override
    public void start(final Stage primaryStage) {

        Pane root = new Pane();

        GridPane gridPane = new GridPane();
        gridPane.setGridLinesVisible(true);

        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {

                Label label = new Label("Label " + i + "/" + j);
                label.setMouseTransparent(true);
                GridPane.setRowIndex(label, i);
                GridPane.setColumnIndex(label, j);

                gridPane.getChildren().add(label);
            }
        }

        root.getChildren().add( gridPane);

        Scene scene = new Scene(root, 400, 300, Color.WHITE);
        primaryStage.setScene(scene);

        primaryStage.show();

        gridPane.addEventFilter(MouseEvent.MOUSE_PRESSED, new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent e) {

                for( Node node: gridPane.getChildren()) {

                    if( node instanceof Label) {
                        if( node.getBoundsInParent().contains(e.getSceneX(),  e.getSceneY())) {
                            System.out.println( "Node: " + node + " at " + GridPane.getRowIndex( node) + "/" + GridPane.getColumnIndex( node));
                        }
                    }
                }
            }
        });

    }

}

You see the clicked cell information in the console.

The same would work if you'd put the listener on the cell node instead of the gridpane, here as a lambda expression:

        label.addEventFilter(MouseEvent.MOUSE_PRESSED, event -> System.out.println( "Node: " + label + " at " + GridPane.getRowIndex( label) + "/" + GridPane.getColumnIndex( label)));

But be aware that the getRowIndex and getColumnIndex methods work only if the data were previously set, as specified in the documentation to these methods.

I have no information about what you intend to achieve, but personally I prefer to work with the nodes themselves instead of some indices in a layout manager which may change.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

JavaFX : How to get column and row index in gridpane?

From Dev

Accessing the column and row index of GridPane in JavaFX keeps returning null

From Dev

How to get GridPane Row and Column IDs on Mouse Entered in each cell of Grid in JavaFX?

From Dev

get the number row of gridpane Javafx

From Dev

How to get column and row Index of each element in big GridPane(15x15)

From Dev

Javafx 2 : How do I delete a row or column in Gridpane

From Dev

JavaFX GridPane col/row span vs index

From Dev

JavaFX GridPane col/row span vs index

From Dev

JavaFX How to change the GridPane row height programmatically

From Dev

gridpane javafx node column span how to use?

From Dev

gridpane javafx node column span how to use?

From Dev

JavaFx GridPane layout how to set margin for an element in row?

From Dev

JavaFX: Get Node by row and column

From Dev

How to get same vertical size of TitledPanes in a Gridpane? (JavaFX, Scenebuilder)

From Dev

How do I get buttons to fill a javafx gridpane?

From Dev

Get the number of rows in a JavaFX GridPane?

From Dev

JavaFX: How to shift elements in a GridPane?

From Dev

Replace a node at (row,col) in a JavaFX GridPane

From Dev

pandas how get row index by data frame column value

From Dev

F# deedle Frame, how to get row index and column index, and datatype for each column

From Dev

How to delete row from table column javafx

From Dev

How do I get the cell value from a datagridview using row index and column index in c#?

From Dev

Get row/column index while looping with numel

From Dev

JavaFX - Iterate GridPane nodes per row - Read Nodes of GridPane per row

From Dev

How to set padding between columns of a JavaFX GridPane?

From Dev

How to span columns of a gridpane manually in javafx?

From Dev

How to set a GridPane to adjust automatically to content in JavaFX

From Dev

How to span columns of a gridpane manually in javafx?

From Dev

How to obtain the information inside a gridpane (javaFX)

Related Related

  1. 1

    JavaFX : How to get column and row index in gridpane?

  2. 2

    Accessing the column and row index of GridPane in JavaFX keeps returning null

  3. 3

    How to get GridPane Row and Column IDs on Mouse Entered in each cell of Grid in JavaFX?

  4. 4

    get the number row of gridpane Javafx

  5. 5

    How to get column and row Index of each element in big GridPane(15x15)

  6. 6

    Javafx 2 : How do I delete a row or column in Gridpane

  7. 7

    JavaFX GridPane col/row span vs index

  8. 8

    JavaFX GridPane col/row span vs index

  9. 9

    JavaFX How to change the GridPane row height programmatically

  10. 10

    gridpane javafx node column span how to use?

  11. 11

    gridpane javafx node column span how to use?

  12. 12

    JavaFx GridPane layout how to set margin for an element in row?

  13. 13

    JavaFX: Get Node by row and column

  14. 14

    How to get same vertical size of TitledPanes in a Gridpane? (JavaFX, Scenebuilder)

  15. 15

    How do I get buttons to fill a javafx gridpane?

  16. 16

    Get the number of rows in a JavaFX GridPane?

  17. 17

    JavaFX: How to shift elements in a GridPane?

  18. 18

    Replace a node at (row,col) in a JavaFX GridPane

  19. 19

    pandas how get row index by data frame column value

  20. 20

    F# deedle Frame, how to get row index and column index, and datatype for each column

  21. 21

    How to delete row from table column javafx

  22. 22

    How do I get the cell value from a datagridview using row index and column index in c#?

  23. 23

    Get row/column index while looping with numel

  24. 24

    JavaFX - Iterate GridPane nodes per row - Read Nodes of GridPane per row

  25. 25

    How to set padding between columns of a JavaFX GridPane?

  26. 26

    How to span columns of a gridpane manually in javafx?

  27. 27

    How to set a GridPane to adjust automatically to content in JavaFX

  28. 28

    How to span columns of a gridpane manually in javafx?

  29. 29

    How to obtain the information inside a gridpane (javaFX)

HotTag

Archive