domingo, 28 de janeiro de 2018

Javafx - Finalistas do Brasileirão 2017 em tableview

Flexibilidade, poder e soberania, assim descrevo o javafx, 
que também é gigante na orientação a objetos.
Para criar esta tabela, nada mais indicado
do que usar um Tableview do javafx, carregado num

ArrayList de objetos.
Por ser genérico e dinâmico, exigindo apenas um parâmetro

do tipo, onde coloquei como tipo a classe Times, 
o ArrayList impressiona com seu alto desempenho aliado de facilidade de uso.

Veja abaixo uma imagem do programa em execução:


Veja abaixo o código do programa:


import java.util.Arrays;
import java.util.List;
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.BorderPane;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.stage.Stage;
///////////////////////////////////////////////////////////////////////
public class PROJETO extends Application {
     static TableView < Object > tabela = new TableView < > ( );
     static Canvas canvas = new Canvas ( 600, 340 );
     static GraphicsContext ctx = canvas.getGraphicsContext2D ( );
     static BorderPane root = new BorderPane ( );
     static Scene scene = new Scene ( root,  600, 340 );
     static ScrollPane scroller = new ScrollPane ( );
////////////////////////////////////////////////////////////////////////////
     public static void Informe ( ) {
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 13 ) );
         ctx.setFill ( Color.RED );
         ctx.fillText ( "Por: ", 200, 295 );
         ctx.setFill ( Color.BLUE );
         ctx.fillText ( "Samuel Lima", 240, 295 );
         ctx.setFill ( Color.BLACK );
         ctx.fillText ( "sa_sp10@hotmail.com", 200, 310 );
         ctx.setFill ( Color.RED );
         ctx.fillText ( " MUITO OBRIGADO", 270, 330 );
     }
     // /////////////////////////////////////////////////////////////////////////
     @SuppressWarnings ( "unchecked" )
     public void start ( Stage sttage ) throws Exception {
         List < Times > times = Arrays.asList (
                   new Times ( " Corinthians", 72, 38, 21, 9, 8 , 50, 30, 20, 63.2 ),
                   new Times ( " Palmeiras  ", 63, 38, 19, 6, 13, 61, 45, 16, 55.3 ),
                   new Times ( " Santos     ", 63, 38, 17,12, 9 , 42, 32, 10, 55.3 ),
                   new Times ( " Grêmio     ", 62, 38, 18, 8, 12, 55, 36, 19, 54.4 ),
                   new Times ( " Cruzeiro   ", 57, 38, 15,12, 11, 47, 39, 8 , 50.0 ),
                   new Times ( " Flamengo   ", 56, 38, 15,11, 12, 49, 38,11 , 49.1 ));
         TableColumn < Object, Object > time = new TableColumn < > (
                   "Times" );
         TableColumn < Object, Object > ponto = new TableColumn < > (
                   "Pontos" );
         TableColumn < Object, Object > jogo = new TableColumn < > (
                   "Jogos" );
         TableColumn < Object, Object > vitoria = new TableColumn < > (
                   "Vitórias" );
         TableColumn < Object, Object > empate = new TableColumn < > (
                   "Empates" );
         TableColumn < Object, Object > derrota = new TableColumn < > (
                   "Derrotas" );
         TableColumn < Object, Object > goolspro = new TableColumn < > (
                   "Gols pro" );
         TableColumn < Object, Object > goolscontra = new TableColumn < > (
                   "Gols contra" );
         TableColumn < Object, Object > saldodegool = new TableColumn < > (
                   "Saldo de gol" );
         TableColumn < Object, Object > porcentagem = new TableColumn < > (
                   "Porcentagem" );
         time.setCellValueFactory (
                   new PropertyValueFactory < > ( "time" ) );
         ponto.setCellValueFactory (
                   new PropertyValueFactory < > ( "ponto" ) );
         jogo.setCellValueFactory (
                   new PropertyValueFactory < > ( "jogo" ) );
         vitoria.setCellValueFactory (
                   new PropertyValueFactory < > ( "vitoria" ) );
         empate.setCellValueFactory (
                   new PropertyValueFactory < > ( "empate" ) );
         derrota.setCellValueFactory (
                   new PropertyValueFactory < > ( "derrota" ) );
         goolspro.setCellValueFactory (
                   new PropertyValueFactory < > ( "goolpro" ) );
         goolscontra.setCellValueFactory (
                   new PropertyValueFactory < > ( "goolcontra" ) );
         saldodegool.setCellValueFactory (
                   new PropertyValueFactory < > ( "saldodegool" ) );
         porcentagem.setCellValueFactory (
                   new PropertyValueFactory < > ( "porcentagem" ) );
         tabela.setItems ( FXCollections.observableArrayList ( times ) );
         tabela.getColumns ( ).addAll ( time, ponto, jogo, vitoria,
                   empate, derrota, goolspro, goolscontra, saldodegool,
                   porcentagem );    
          sttage.setTitle ( "FINALISTAS DO BRASILEIRÃO 2017");
         scroller.setContent ( tabela );
         // Criando moldura e dando efeitos
         scroller.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;" );
         root.setStyle("-fx-background-color: magenta;");
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
         ctx.setFill ( Color.RED );
         ctx.fillText ( "FINALISTAS DO BRASILEIRÃO 2017", 180, 20 );     
         ctx.setFill ( Color.BLACK );
         ctx.fillText ( "Tabela dos seis melhores do brasileirão 2017", 160, 40 ); 
         Informe ( );
         root.getChildren ( ).addAll ( canvas );
         root.setPadding ( new Insets ( 50, 20, 60, 20 ) );
         root.setCenter ( scroller );
         sttage.setScene ( scene );
         sttage.show ( );
     }
////////////////////////////////////////////////////////////////////////////
     public static class Times {
         private String       Times;
         private int          Pontos;
         private int          Jogos;
         private int          Vitorias;
         private int          Empates;
         private int          Derrotas;
         private int          Goolspro;
         private int          Goolscontra;
         private int          Saldodegools;
         private double        Porcentagem;
     /////////////////////////////////////////////////////////////////////////
         public Times ( String time, int ponto, int jogo, int vitoria,
                   int empate, int derrota, int goolpro, int goolscontra,
                   int saldodegool, double porcentagem ) {
              this.Times = time;
              this.Pontos = ponto;
              this.Jogos = jogo;
              this.Vitorias = vitoria;
              this.Empates = empate;
              this.Derrotas = derrota;
              this.Goolspro = goolpro;
              this.Goolscontra = goolscontra;
              this.Saldodegools = saldodegool;
              this.Porcentagem = porcentagem;
         }
     ////////////////////////////////////////////////////////////////////////
         public String getTime ( ) {         
              return Times;
         }

         public void setTime ( String time ) {
              this.Times = time;
         }

         public int getPonto ( ) {
              return Pontos;
         }

         public void setPonto ( int ponto ) {
              this.Pontos = ponto;
         }

         public int getJogo ( ) {
              return Jogos;
         }

         public void setJogo ( int jogo ) {
              this.Jogos = jogo;
         }

         public int getVitoria ( ) {
              return Vitorias;
         }

         public void setVitoria ( int vitoria ) {
              this.Vitorias = vitoria;
         }

         public int getEmpate ( ) {
              return Empates;
         }

         public void setEmpate ( int empate ) {
              this.Empates = empate;
         }

         public int getDerrota ( ) {
              return Derrotas;
         }

         public void setDerrota ( int derrota ) {
              this.Derrotas = derrota;
         }

         public int getGoolpro ( ) {
              return Goolspro;
         }

         public void setGoolpro ( int goolpro ) {
              this.Goolspro = goolpro;
         }

         public int getGoolcontra ( ) {
              return Goolscontra;
         }

         public void setGoolcontra ( int goolcontra ) {
              this.Goolscontra = goolcontra;
         }

         public int getSaldodegool ( ) {
              return Saldodegools;
         }

         public void setSaldodegool ( int saldodegool ) {
              this.Saldodegools = saldodegool;
         }

         public double getPorcentagem ( ) {
              return Porcentagem;
         }

         public void setPorcentagem ( double porcentagem ) {
              this.Porcentagem = porcentagem;
         }
     }
     // /////////////////////////////////////////////////////////////////////
     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.