quarta-feira, 7 de fevereiro de 2018

Javafx - chamando enum em choicebox

Nós podemos definir nossos próprios tipos de dados
( que são tipos de dados enumerados neste caso )
Também podemos adicionar variáveis, métodos e construtores.
Representar um grupo de constantes nomeadas
é a principal característica do enum no java,
por isto seu uso é recomendado quando se pretende
enumerar tipos naturais quando conhecemos os valores

possíveis a serem utilizados, aqui cito alguns como:
dias, semanas, meses, anos. coleções, direções,
constelações planetárias e etc..
Um programador de java pode usar o enum para criar

seu próprios menus isto é natural e recomendado.
A declaração do enum pode ser feita fora de uma Classe
ou dentro de uma Classe, mas não dentro de um Método, 
eis aqui um bom exemplo de como usar o enum do java 
numa bela interface do javafx.
 
Veja abaixo imagens do programa em execução:






Veja abaixo o código do programa:



import javafx.application.Application;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.control.*;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.stage.Stage;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.geometry.Insets;
import javafx.scene.control.Button;
import javafx.scene.input.KeyCode;

enum Frutas_preferidas {
     MAMÃO_PAPAIA, CAQUI_CHOCOLATE, MANGA_ROSA,
     COCO_VERDE, LARANJA_LIMA, FRUTA_DO_CONDE
};
public class PROJETO extends Application {
     static Canvas canvas = new Canvas ( 600, 340 );
     static GraphicsContext ctx = canvas.getGraphicsContext2D ( );
     static Pane root = new Pane ( );
     static Scene scene = new Scene ( root,  600, 340 );
     static GridPane grid = new GridPane ( );
     static Button btn_1 = new Button ( "FECHAR" );
     final static ChoiceBox < String > cb = new ChoiceBox < String > (
              FXCollections.observableArrayList (
                        "MAMÃO_PAPAIA", "CAQUI_CHOCOLATE",
                        "MANGA_ROSA", "COCO_VERDE", "LARANJA_LIMA",
                        "FRUTA_DO_CONDE" ) );
     // /////////////////////////////////////////////////////////////////////////
     public static Node Sair ( ) {
         btn_1.setPrefWidth ( 100 );// Largura do botão
         btn_1.setLayoutX ( 267 );// Posição do botão coluna
         btn_1.setPrefHeight ( 20 );// altura do botão
         btn_1.setLayoutY ( 300 );// //Posição do botão linha
         btn_1.setStyle ( "-fx-padding: 1;" + "-fx-border-style: solid inside;"
                   + "-fx-border-width: 2;" + "-fx-border-insets: 1;"
                   + "-fx-border-radius: 1;" + "-fx-border-color: red;"
                   + "-fx-font-style: italic;" + "-fx-font-family: Consolas;" );
         btn_1.setOnKeyPressed ( e -> {
              if ( e.getCode ( ) == KeyCode.ENTER ) {
                   System.exit ( 0 );
              }
         } );
         return btn_1;
     }
     // /////////////////////////////////////////////////////////////////////////
     public static void Choice_box ( ) {
         cb.setStyle ( "-fx-padding: 5;" + "-fx-border-style: solid inside;"
                   + "-fx-border-width: 2;" + "-fx-border-insets: 5;"
                   + "-fx-border-radius: 5;" + "-fx-border-color: black;" );
         cb.getSelectionModel ( ).selectedIndexProperty ( )
         .addListener ( new ChangeListener < Number > ( ) {
              public void changed ( ObservableValue ov, Number value,
                        Number new_value ) {
                   System.out.println ( new_value.intValue ( ) );
                   StringBuilder str = new StringBuilder ( );
                   //Coluna, linha, comprimento, altura
                   ctx.clearRect ( 170, 100, 400, 50 );
                   ctx.clearRect ( 170, 130, 400, 50 );
                   ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 14 ) );    
                   switch ( new_value.intValue ( ) ) {
                   case 0:
                        str.append ( Frutas_preferidas.MAMÃO_PAPAIA );
                        break;
                   case 1:
                        str.append ( Frutas_preferidas.CAQUI_CHOCOLATE );
                        break;
                   case 2:
                        str.append ( Frutas_preferidas.MANGA_ROSA );
                        break;
                   case 3:
                        str.append ( Frutas_preferidas.COCO_VERDE );
                        break;
                   case 4:
                        str.append ( Frutas_preferidas.LARANJA_LIMA );
                        break;
                   default:
                        str.append ( "Não entendi qual é sua fruta preferida" );
                        //Coluna, linha, comprimento, altura
                        ctx.clearRect ( 170, 100, 400, 50 );
                        break;
                   }
                   ctx.setFill ( Color.BLUE );
                   ctx.fillText ( "Sua fruta preferida é: ", 180, 110 );
                   ctx.setFill ( Color.RED );
                   ctx.fillText ( " " + str, 180, 140 );
              }
         } );
         grid.add ( cb, 1, 1 );
     }
     // /////////////////////////////////////////////////////////////////////////
     public void start ( Stage stage ) {
         stage.setTitle ( "JAVAFX - CHAMANDO ENUM EM CHOICEBOX" );
         // Criando moldura e dando efeitos
         root.setStyle ( "-fx-padding: 5;" + "-fx-border-style: solid inside;"
                   + "-fx-border-width: 10;" + "-fx-border-insets: 5;"
                   + "-fx-border-radius: 5;" + "-fx-border-color: pink;" );
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
         ctx.setFill ( Color.RED );
         ctx.fillText ( "JAVAFX - CHAMANDO ENUM EM CHOICEBOX", 200, 50 );      
         ctx.setFill ( Color.BLUE );
         ctx.fillText ( "Escolha no choicebox sua fruta preferida", 190, 80 );
         Choice_box ( );
         Sair ( );
         grid.setPadding ( new Insets ( 15, 15, 60, 15 ) );
         root.getChildren ( ).addAll ( canvas, btn_1 );
         root.getChildren ( ).addAll ( grid );
         stage.setScene ( scene );
         stage.show ( );
     }
     // /////////////////////////////////////////////////////////////////////////
     public static void main ( String [ ] args ) {
         launch ( args );
     }
}

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.