segunda-feira, 15 de junho de 2015

GridPane Layout e Array de Button


      Grid Pane e e Array de Button
Hoje estava com um problema para criar um array de buttons e adicioná-lo ao GridPane. Encontrei esta solução no site (http://zoranpavlovic.blogspot.com.br/2012/05/javafx-20-layouts-gridpane.html). Vou replicá-lo aqui, pois o resultado foi excelente. Vou criar variações deste modelo para postar outras soluções.

 
Nesta aplicação iremos construir um painel com GridPane e adicionar um Array de Buttons na nossa aplicação. A Figura 1 apresenta a aplicação desenvolvida e a Listagem 1 apresenta o código para a criação do aplicativo.



Figura 1: Aplicação Desenvolvida

Vamos utilizar o gerenciador de Layout GridPane e para criar o gerenciador de Layout basta utilizar o código a seguir.

GridPane gridPane = new GridPane();

Vamos precisar também de um array de Button e para isto utilizamos
Button[][] btn = new Button[5][5];

Para adicionar os buttons ao Layout precisamos utilizar o comando .add:
gridPane.add(btn[i][j], i, j);

Após isto precisamos adicionar o nosso Layout a Tela para ser mostrado:
Scene scene = new Scene(gridPane);
       
primaryStage.setTitle("Button e GridPane");
primaryStage.setScene(scene);
primaryStage.show();

O código completo está descrito na Listagem 1.

Listagem 1: Código da aplicação desenvolvida.
package arraycheckbox.gridpane;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

/**
 *
 * @author alessandrovivas
 */
public class ArrayCheckboxGridPane extends Application {
   
    @Override
    public void start(Stage primaryStage) {
       
       // cria Layout Grid Pane
       GridPane gridPane = new GridPane();
            
       // cria um arrray de button
       Button[][] btn = new Button[5][5];
              
        
       //dois loops para adicionar os buttons ao layout
        for(int i=0; i<btn.length; i++){
                for(int j=0; j<btn.length;j++){
                      
                        //Initializing 2D buttons with values i,j
                        btn[i][j] = new Button(""+i+","+""+j);
                        btn[i][j].setPrefSize(50, 50);
                        gridPane.add(btn[i][j], i, j); 
                        }
        }
       
        Scene scene = new Scene(gridPane);
       
        primaryStage.setTitle("Button e GridPane");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        launch(args);
    }
   

Nenhum comentário:

Postar um comentário