quarta-feira, 27 de dezembro de 2017

Javafx - eventos do teclado

Um evento indica que algo aconteceu quando por exemplo
uma tecla for pressionada, seja para desbloquear ou digitar,
estes eventos são passados para o método OnKeyPressed,
que é o nosso caso, mas dependendo do tipo de evento
pode ser passado para os métodos, onKeyTyped ou onKeyReleased.
Aqui está um bom exemplo de manipulação de eventos de teclado
com o uso especial da tecla "ENTER", que está
sendo usada para chamar outras janelas do programa.
Além do pacote default, que possui o PROJETO.java,
O programa está dividido em dois outros pacotes,
que são: Teste contendo a classe Nova.java
e Teste_1 contendo a classe Newclass.java.
Na primeira tela temos a impressão de um ArrayList
de objetos Strings, este ArrayList está declarado
na classe Newclass e sendo imprimido no stage da
classe principal.
Na segunda tela temos a impressão de mais um arrayList,
só que este imprime elementos inteiros que foram gerados
através de um contador com loop for e inserido na lista.
Na terceira tela temos a visualização de uma bela imagem
de feliz ano novo em homenagem a todos os programadores,
em especial os deste grupo.


Veja abaixo imagens do programa em execução:





Veja abaixo os arquivos com o código do programa:



//Classe principal PROJETO.java
import Teste_1.*;
import Teste.*;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.stage.Stage;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.Pane;
import javafx.scene.control.Button;
import javafx.scene.effect.DropShadow;
import javafx.scene.input.KeyCode;

public class PROJETO extends Application {
     static Stage stage;
     static Button btn_1 = new Button ( "TECLE ENTER" );
     static int b = 0, i;
     static String str = " ";
     static String str_2 = " ";
     static String str_4 = " ";
     static String str_5 = " ";
     static Text t = new Text ( );
     static Text t_1 = new Text ( );
     static Text t_2 = new Text ( );
     static DropShadow ds = new DropShadow ( );
     static Canvas canvas = new Canvas ( 620, 410 );
     static GraphicsContext ctx = canvas.getGraphicsContext2D ( );
     static BorderPane borderPane = new BorderPane ( );
     static Pane ro_ot = new Pane ( );
     static Scene sce_ne = new Scene ( ro_ot, 620, 410 );
     // ////////////////////////////////////////////////////////////////////////
     public static Node But_ton_3 ( Stage stage ) {
         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 ( 352 );// //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: blue;"
                   + "-fx-font-style: italic;"
                   + "-fx-font-family: Consolas;"
                   );      
         btn_1.setOnKeyPressed ( e -> {
              if ( e.getCode ( ) == KeyCode.ENTER ) {
                   Nova.start ( stage );
              }
         });
         return btn_1;
     }
     // ////////////////////////////////////////////////////////////////////////
     public static Node Arr_List ( ) {
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 13 ) );
         Group y = new Group ( );
         for ( i = 0; i < Newclass.arr_List.size ( ); i++ ) {
              if ( i >= 0 && i <= 15 ) {
                   b++;
                   str_2 += b + "\n";
                   str += Newclass.arr_List.get ( i ) + "\n";
              }
              if ( i >= 16 && i <= 32 ) {
                   b++;
                   str_4 += b + "\n";
                   str_5 += Newclass.arr_List.get ( i ) + "\n";
              }
         }
         ctx.setFill ( Color.RED );
         ctx.fillText ( str_2, 170, 110 );
         ctx.setFill ( Color.BLACK );
         ctx.fillText ( str, 190, 110 );
         ctx.setFill ( Color.RED );
         ctx.fillText ( str_4, 370, 110 );
         ctx.setFill ( Color.BLACK );
         ctx.fillText ( str_5, 390, 110 );
         ctx.setFill ( Color.RED );
         ctx.fillText ( str_2, 170, 110 );
         ctx.setFill ( Color.BLACK );
         ctx.fillText ( str, 190, 110 );
         ctx.setFill ( Color.RED );
         ctx.fillText ( str_4, 370, 110 );
         ctx.setFill ( Color.BLACK );
         ctx.fillText ( str_5, 390, 110 );   
         return y;
     }
     // /////////////////////////////////////////////////////////////////////////
     public void start ( Stage stage ) throws Exception {
         stage.setTitle ( "JAVAFX - EVENTOS DO TECLADO" );
         ro_ot.setStyle ( "-fx-padding: 5;" + "-fx-border-style: solid inside;"
                   + "-fx-border-width: 10;" + "-fx-border-insets: 5;"
                   + "-fx-border-radius: 5;" + "-fx-border-color: blue;" );
         t.setFont ( Font.font ( null, FontWeight.BOLD, 18 ) );
         t_1.setFont ( Font.font ( null, FontWeight.BOLD, 13 ) );
         ds.setOffsetY ( 3.0f );
         ds.setColor ( Color.color ( 0.4f, 0.4f, 0.4f ) );
         t.setX ( 180 );
         t.setY ( 50 );
         t.setEffect ( ds );
         t_1.setFill ( Color.BLACK );
         t.setText ( "JAVAFX - EVENTOS DO TECLADO" ); 
         t_1.setX ( 240 );
         t_1.setY ( 70 );
         t_1.setFill ( Color.RED );
         t_1.setEffect ( ds );
         t_1.setText ( "Criado por Samuel Lima" );
         t_2.setX ( 210 );
         t_2.setY ( 90 );
         t_2.setFill ( Color.BLUE );
         t_2.setEffect ( ds );
         t_2.setText ( "Imprimindo abaixo ArrayList de Strings" );
         But_ton_3 ( stage );
         Arr_List ( );
         ro_ot.getChildren ( ).addAll ( t, t_1, t_2, canvas, borderPane, btn_1 );
         stage.setScene ( sce_ne );
         stage.show ( );
     }
     // /////////////////////////////////////////////////////////////////////////
     public static void main ( String [ ] args ) {
         Application.launch ( args );
     }
}




//Classe Nova.java
package Teste;
import java.util.ArrayList;
import Teste_1.*;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.control.Button;
import javafx.scene.effect.DropShadow;
import javafx.scene.input.KeyCode;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class Nova {
     static Text t = new Text ( );
     static Text t_1 = new Text ( );
     static Text t_2 = new Text ( );
     static DropShadow ds = new DropShadow ( );
     static Newclass pro = new Newclass ( );
     static Button btn_1 = new Button ( "TECLE ENTER" );
     static int b = 0, i;
     static String str = " ";
     static String str_2 = " ";
     static String str_4 = " ";
     static String str_5 = " ";
     static Canvas canvas = new Canvas ( 620, 410 );
     static GraphicsContext ctx = canvas.getGraphicsContext2D ( );
     static Pane root = new Pane ( );
     static Scene scene = new Scene ( root, 620, 410 );
     //Declarando ArrayList com valor pré-determinado
     static ArrayList < Integer > arrList = new ArrayList < > ( 100 );
     // ////////////////////////////////////////////////////////////////////////
     public static Node But_ton_3 ( Stage stage ) {
         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 ( 352 );// //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: blue;"
                   + "-fx-font-style: italic;"
                   + "-fx-font-family: Consolas;"
                   );  
         btn_1.setOnKeyPressed ( e -> {
              if ( e.getCode ( ) == KeyCode.ENTER ) {
                   try {
                        Newclass.start ( stage );
                   } catch (Exception e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                   }
              }
         });
         return btn_1;
     }
////////////////////////////////////////////////////////////////////////////
     public static Node Arr_List ( ) {
         Group y = new Group ( );
         ctx.setFont ( Font.font ( "Arial", FontWeight.BOLD, 14 ) );
         ctx.setFill ( Color.BLACK );
         //Preenchendo o ArrayList com laço for
         for ( i = 1; i < 101; i++ ) {
              arrList.add ( i );
         }
         for ( i = 0; i < arrList.size ( ); i++ ) {
              if ( i >= 0 && i <= 19 ){
                   if ( i >= 0 && i < 9 ){
                        str +=  "0";
                   }
                   if ( i >= 0 && i <= 19 ){
                        str += arrList.get ( i ) + "   ";
                   }
              }
              if ( i == 20 || i == 40 || i == 60 || i == 80 ) {
                   str_2 += "\n";
              }
              if ( i >= 20 && i <= 100 )
                   str_2 += arrList.get ( i ) + "   ";
         }
         ctx.fillText ( str, 50, 120 );
         ctx.fillText ( str_2, 52, 120 );
         return y;
     }   
////////////////////////////////////////////////////////////////////////////
     public static void start ( Stage stage ) {
         stage.setTitle ( "JAVAFX - EVENTOS DO TECLADO" );
         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: red;" );
         t.setFont ( Font.font ( null, FontWeight.BOLD, 18 ) );
         t_1.setFont ( Font.font ( null, FontWeight.BOLD, 13 ) );
         ds.setOffsetY ( 3.0f );
         ds.setColor ( Color.color ( 0.4f, 0.4f, 0.4f ) );
         t.setX ( 180 );
         t.setY ( 50 );
         t.setEffect ( ds );
         t_1.setFill ( Color.BLACK );
         t.setText ( "JAVAFX - EVENTOS DO TECLADO" ); 
         t_1.setX ( 240 );
         t_1.setY ( 70 );
         t_1.setFill ( Color.RED );
         t_1.setEffect ( ds );
         t_1.setText ( "Criado por Samuel Lima" );
        
         t_2.setX ( 210 );
         t_2.setY ( 90 );
         t_2.setFill ( Color.BLUE );
         t_2.setEffect ( ds );
         t_2.setText ( "Imprimindo abaixo ArrayList de inteiros" );
         Arr_List ( );
         But_ton_3 ( stage );
         root.getChildren ( ).addAll ( t, t_1, t_2, canvas, btn_1 );
         stage.setScene ( scene );
         stage.show ( );
     }
     // ////////////////////////////////////////////////////////////////////////
}


//Classe Newclass.java
package Teste_1;
import java.util.ArrayList;
import java.util.Arrays;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import javafx.scene.effect.DropShadow;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;

public class Newclass {
     public static Text t = new Text ( );
     public static Text t_1 = new Text ( );
     public static Text t_2 = new Text ( );
     public static DropShadow ds = new DropShadow ( );
     public static ImageView imageView = new ImageView ( );
     public static Canvas canvas = new Canvas ( 620, 410 );
     public static GraphicsContext ctx = canvas.getGraphicsContext2D ( );
     public static Pane root = new Pane ( );
     public static Scene scene = new Scene ( root, 620, 410 );
     public static int b = 0, i;
     public static String str = " ";
     public static String str_2 = " ";
     public static String str_4 = " ";
     public static String str_5 = " ";
     public static ArrayList < String > arr_List = new ArrayList < > ( Arrays.asList (
              "Alemanha"       , //0
              "Argélia"        , //1
              "Argentina"      , //2
              "Austrália"      , //3
              "Bélgica"        , //4
              "Bósnia"         , //5
              "Brasil"         , //6
              "Camarões"       , //7
              "Chile"          , //8
              "Colômbia"       , //9
              "Coreia do Sul"  , //10
              "Costa do Marfim", //11
              "Costa Rica"     , //12
              "Croácia"        , //13
              "Equador"        , //14
              "Espanha"        , //15
              "Estados Unidos" , //16
              "França"         , //17
              "Gana"           , //18
              "Grécia"         , //19
              "Holanda"        , //20
              "Honduras"       , //21
              "Inglaterra"     , //22
              "Irã"            , //23
              "Itália"         , //24
              "Japão"          , //25
              "México"         , //26
              "Nigéria"        , //27
              "Portugal"       , //28
              "Rússia"         , //29
              "Suíça"          , //30
              "Uruguai"          //31
              ) );
////////////////////////////////////////////////////////////////////////////
     public static Node Arr_List ( ) {
         Group y = new Group ( );
         for ( i = 0; i < arr_List.size ( ); i++ ) {
              if ( i >= 0 && i <= 15 ) {
                   b++;
                   str_2 += b + "\n";
                   str += arr_List.get ( i ) + "\n";
              }
              if ( i >= 16 && i <= 32 ) {
                   b++;
                   str_4 += b + "\n";
                   str_5 += arr_List.get ( i ) + "\n";
              }
         }
         ctx.setFill ( Color.RED );
         ctx.fillText ( str_2, 170, 100 );
         ctx.setFill ( Color.BLACK );
         ctx.fillText ( str, 190, 100 );
         ctx.setFill ( Color.RED );
         ctx.fillText ( str_4, 370, 100 );
         ctx.setFill ( Color.BLACK );
         ctx.fillText ( str_5, 390, 100 );   
         return y;
     }   
////////////////////////////////////////////////////////////////////////////
     public static int Image_View ( ) throws FileNotFoundException{
         Image image = new Image (
                   new FileInputStream (
                             "C:\\Users\\Programador\\Desktop\\Foto\\ano novo.PNG" ) );
         imageView = new ImageView ( image );
         imageView.setX ( 70 );
         imageView.setY ( 80 );
         imageView.setFitHeight ( 1020 );
         imageView.setFitWidth ( 480 );
         imageView.setPreserveRatio ( true );
         return 0;
     }
     public static void start ( Stage stage ) throws FileNotFoundException {
         stage.setTitle ( "JAVAFX - EVENTOS DO TECLADO" );
         t.setFont ( Font.font ( null, FontWeight.BOLD, 18 ) );
         t_1.setFont ( Font.font ( null, FontWeight.BOLD, 13 ) );
         ds.setOffsetY ( 3.0f );
         ds.setColor ( Color.color ( 0.4f, 0.4f, 0.4f ) );
        
         t.setX ( 180 );
         t.setY ( 50 );        
         t.setFill ( Color.BLACK );
         t.setEffect ( ds );
         t.setText ( "JAVAFX - EVENTOS DO TECLADO" );

         t_1.setX ( 170 );
         t_1.setY ( 70 );
         t_1.setFill ( Color.RED );
         t_1.setEffect ( ds );
         t_1.setText ( "FELIZ 2018 PARA TODOS OS PROGRAMADORES" );
        
         t_2.setEffect ( ds );
         t_2.setText ( "Criado por Samuel Lima" );
         t_2.setFill ( Color.BLACK );
         t_2.setX ( 240 );
         t_2.setY ( 385 ); 
         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: green;" );
         Image_View ( );
         root.getChildren ( ).addAll ( t, t_1, t_2, canvas, imageView );
         stage.setScene ( scene );
         stage.show ( );
         return;
     }
}



 


Nenhum comentário:

Postar um comentário

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