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);
}
|