de controle por slider,
neste estamos mostrando um controle
por paginação que é usado para navegar
entre páginas de um único conteúdo,
que foi dividido em partes menores.
A função de retorno de chamada deve
carregar e retornar o conteúdo da página selecionada.
Nulo deve ser retornado
se o índice de páginas selecionado não existir.
Veja agora mesmo como criei um controle
de paginação com cinco páginas,
e cada página, mostra um pequeno trecho
de um único texto.
Veja abaixo imagens do programa em execução:
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.control.Pagination;
import javafx.scene.control.TextArea;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.stage.Stage;
public class PROJETO extends Application {
AnchorPane root = new AnchorPane ( );
Canvas canvas = new Canvas ( 610, 360 );
final Scene scene = new Scene ( root, 610, 360, Color.BLUE );
GraphicsContext ctx = canvas.getGraphicsContext2D
( );
GridPane grid = new GridPane ( );
private Pagination paginas;
final String [ ] textos_por_paginas = new String [ ] {
"No princípio criou Deus o céu e a
terra.\n\n"
+ "Gênesis 1:1\n",
"E a terra era sem forma e
vazia;\n"
+ "e havia trevas sobre a face do
abismo;\n"
+ "e o Espírito de Deus se movia\n"
+ "sobre a face das águas\n\n"
+ "Gênesis 1:2",
"E disse Deus: Haja luz; e houve
luz.\n\n"
+ "Gênesis 1:3",
"E viu Deus que era boa a luz;\n"
+ "e fez Deus separação entre \n"
+ "a luz e as trevas.\n\n"
+ "Gênesis 1:4",
"E Deus chamou à luz Dia;\n"
+ " e às trevas chamou Noite.\n"
+ " E foi a tarde e a manhã,\n"
+ " o dia primeiro.\n\n"
+ "Gênesis 1:5" };
//
////////////////////////////////////////////////////////////////////////
public void Informe ( ) {
ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 13 ) );
ctx.setFill ( Color.RED );
ctx.fillText ( "Por: ", 200, 220 );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "Samuel
Lima", 240, 220 );
ctx.setFill ( Color.BLACK );
ctx.fillText ( "sa_sp10@hotmail.com", 200, 235 );
ctx.setFill ( Color.RED );
ctx.fillText ( " MUITO
OBRIGADO", 245, 270 );
}
//
////////////////////////////////////////////////////////////////////////
public int itens_por_paginas ( ) {
return 1;
}
//
////////////////////////////////////////////////////////////////////////
public VBox Paginas ( int inseri_paginas ) {
VBox box = new VBox ( 5 );
grid.setPadding ( new Insets ( 8 ) );
// Posiciona o TextArea na janela na
horizontal
grid.setHgap ( 4 );
// Posiciona o TextArea na janela na
vertical
grid.setVgap ( 8 );
int pagina = inseri_paginas * itens_por_paginas (
);
TextArea text = new TextArea ( );
for ( int i = pagina; i < pagina + itens_por_paginas (
); i++ ) {
text = new TextArea ( textos_por_paginas [ i ] );
text.setWrapText ( true );
box.getChildren ( ).add ( text );
}
text.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;"
+ "-fx-font-style: italic;"
+ " -fx-font-weight:
bolder;"
+ " -fx-font-size: 12px;"
+ "-fx-alignment: center;"
+ "-fx-text-fill: blue" );
box.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;" );
// total de linhas para o TextArea
text.setPrefRowCount ( 6 );
// Posiciona as Margens do TextArea
grid.add ( text, 10, 10, 5, 10 );
return box;
}
//
////////////////////////////////////////////////////////////////////////
public void Page ( ) {
paginas = new Pagination ( 5, 0 );
paginas.setPageFactory ( ( Integer inseri_paginas ) -> {
if ( inseri_paginas >= textos_por_paginas.length ) {
return null;
} else {
return Paginas ( inseri_paginas );
}
} );
AnchorPane.setTopAnchor ( paginas, 10.0 );
AnchorPane.setRightAnchor ( paginas, 10.0 );
AnchorPane.setBottomAnchor ( paginas, 10.0 );
AnchorPane.setLeftAnchor ( paginas, 10.0 );
}
//
////////////////////////////////////////////////////////////////////////
@Override
public void start ( final Stage stage ) throws Exception {
stage.setTitle ( "JAVAFX -
EXEMPLO DE PAGINATION" );
//Isto aqui impede que
a janela seja expandida
stage.setResizable ( false );
// Criando moldura e aplicando efeitos
com css
root.setStyle ( "-fx-padding:
5;"
+ "-fx-border-style: solid
inside;"
+ "-fx-border-width: 12;"
+ "-fx-border-insets: 5;"
+ "-fx-border-radius: 5;"
+ "-fx-border-color:
darkblue;" );
ctx.setFont ( Font.font ( "Arial", FontWeight.BOLD, 15 ) );
ctx.setFill ( Color.RED );
ctx.fillText ( "JAVAFX -
EXEMPLO DE PAGINATION", 170, 60 );
Page ( );
Informe ( );
root.getChildren ( ).addAll ( canvas, paginas, grid );
stage.setScene ( scene );
stage.show ( );
}
//
////////////////////////////////////////////////////////////////////////
public static void main ( String [ ] args ) throws Exception {
launch ( args );
}
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.