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:
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.