Cheguei agora pouco por aqui, e já tive uma idéia:
Vou imprimir um texto longo numa janela de javafx,
então não tive nenhuma dúvida, serei obrigado
a usar scrollpane, e como já tinha um código
por aqui com menu e textfield, apenas acrescentei
o scroll, deu um pouco de trabalho, más aqui
está, a funcionalidade de pesquisa ainda não foi
imprementado, fica para um novo post.
Se você já domina bem o java acompanhe atentamente
como fiz e aproveite o código para estudos.
Veja abaixo uma imagem do programa em execução:
Veja abaixo o código do programa:
Vou imprimir um texto longo numa janela de javafx,
então não tive nenhuma dúvida, serei obrigado
a usar scrollpane, e como já tinha um código
por aqui com menu e textfield, apenas acrescentei
o scroll, deu um pouco de trabalho, más aqui
está, a funcionalidade de pesquisa ainda não foi
imprementado, fica para um novo post.
Se você já domina bem o java acompanhe atentamente
como fiz e aproveite o código para estudos.
Veja abaixo uma imagem do programa em execução:
Veja abaixo o código do programa:
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.control.ScrollPane;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.stage.Stage;
import javafx.concurrent.Task;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
import javafx.scene.control.TextField;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.Pane;
import javafx.scene.control.Button;
import javafx.geometry.Insets;
import javafx.scene.layout.HBox;
public class PROJETO extends Application {
static Stage stage;
static String str = "";
static String str_1 = "MUITO OBRIGADO";
static String str_3 = "Por: Samuel Lima";
static String str_4 = "";
static int a = 0, b = 0;
static Group root = new Group ( );
static Pane ro_ot = new Pane ( );
static Scene scene = new Scene ( root, 690, 390, Color.PINK );
static Canvas canvas = new Canvas ( 2000, 2000 );
static GraphicsContext ctx = canvas.getGraphicsContext2D ( );
static ScrollPane s1 = new ScrollPane ( );
static TextField textField = new TextField ( );
static HBox hbox = new HBox ( textField );
static BorderPane borderPane = new BorderPane ( );
static MenuBar menuBar = new MenuBar ( );
//
/////////////////////////////////////////////////////////////////////
// Chamando uma função depois de um certo
tempo
public static void Tempo_3 ( ) {
ctx.setFill ( Color.RED );
ctx.fillText ( str_1, 280, 320 );
}
public static void Tempo_2 ( ) {
ctx.setFill ( Color.BLUE );
ctx.fillText ( str_3, 280, 300 );
}
public static void Tempo_1 ( ) {
// Coluna, linha, comprimento, altura
// Apagando uma linha ou partes
ctx.clearRect ( 150, 330, 300, 60 );
}
//
/////////////////////////////////////////////////////////////////
public static int Sleep ( int x, int k ) {
Task < Integer > close = new Task < Integer > ( ) {
@Override
protected Integer call ( ) throws Exception {
Thread.sleep ( x );
return null;
}
};
close.setOnSucceeded ( c -> {
if ( k == 1 )
Tempo_1 ( );
if ( k == 2 )
Tempo_2 ( );
if ( k == 3 )
Tempo_3 ( );
} );
new Thread ( close ).start ( );
return 0;
}
//
/////////////////////////////////////////////////////////////////
public static int But_ton_2 ( ) {
//Botão declarado local
Button btn_2 = new Button ( "cls" );
btn_2.setPrefWidth ( 40 );// Largura do botão
btn_2.setLayoutX ( 623 );// Posição do botão
btn_2.setPrefHeight ( 24 );// altura do botão
btn_2.setLayoutY ( 343 );// //Posição do botão
btn_2.setOnAction ( new EventHandler < ActionEvent > ( ) {
@Override
public void handle ( ActionEvent event ) {
// Coluna, linha,
comprimento, altura
// Apagando uma linha
ou partes
ctx.clearRect ( 150, 270, 400, 60 );
}
} );
root.getChildren ( ).add ( btn_2 );
return 0;
}
//
/////////////////////////////////////////////////////////////////
public static void Ar_ay ( ) {
int i, j;
String [ ] [ ] texto = {
{"Debaixo dumas
mui formosas tamareiras, \n"},
{"Estando já
Berseba na escuridão. \n"},
{"As aves
escutando, entre as roseiras,
\n"},
{"Se vê andar o
patriarca Abraão. \n"},
{"Seu coração
perante Deus está aflito, \n"},
{"Pois quer que
O sirvamos sem murmuração; \n"},
{"E por amor
pergunta ao Senhor bendito: \n"},
{"O meu amado
filho queres Tu, então? \n"},
{"
\n"},
{"A voz de Jeová
potente é ouvida: \n"},
{"O teu Isaque
oferece para Mim, \n"},
{"Embora fiques
com tu'alma dolorida, \n"},
{"Pois te abençoo
se fizeres tu assim. \n"},
{"De abatido
Abraão se torna forte \n"},
{"E Canta
hinos, pois com fé medita já:
\n"},
{"Deus pode o
meu filho libertar da morte! \n"},
{"E não
temendo, segue para Moriá.
\n"},
{"
\n"},
{"Ao pé do
monte do supremo sacrifício,
\n"},
{"Profunda
duvida entrou em Abraão:
\n"},
{"Irei perder
da minha vida o beneficio? \n"},
{"E triste começou
subir com lentidão, \n"},
{"Pois ia dar,
do coração a esperança \n"},
{"- No seu
outono, sacrifício duma flor,&
\n"},
{"Assim levou o
seu cordeiro à matança, \n"},
{"Em obediência
ao mandato do Senhor. \n"},
{"
\n"},
{"Isaque com a
lenha, presto vai na frente, \n"},
{"Oh! Quanto é
formoso para Abraão! \n"},
{"Mas eis que
volta p'ra seu pai suavemente \n"},
{"E lhe dirige
esta interrogação: \n"},
{"O fogo e a
lenha estou vendo que trouxemos, \n"},
{"Mas o
cordeiro d'holocausto onde está?
\n"},
{"E a resposta
de Abraão na Bíblia temos: \n"},
{"Meu filho,
Deus pra Si, Cordeiro proverá \n"},
{"
\n"},
{"Chegando Abraão
aonde Deus mandara, \n"},
{"Fez um altar
e nele a lenha arrumou: \n"},
{"E a seu
filho, que já dantes amarrara,
\n"},
{"Tomando nos
seus braços sobre o altar deitou\n"},
{"Mas quando
Abraão foi para imolá-lo, \n"},
{"O Anjo do
Senhor bradou-lhe desde os céus:
\n"},
{"A tua mão, ó
não estendas p'ra matá-lo; \n"},
{"Porquanto eu
agora sei que temes Deus. \n"},
{"
\n"},
{"Erguendo Abraão
seus olhos de repente, \n"},
{"Vê um
cordeiro, que no mato preso está,
\n"},
{"E o tomando,
oferece-o alegremente; \n"},
{"Assim No
monte do Senhor se proverá.
\n"},
{"A voz do Anjo
é ouvida novamente; \n"},
{"Diz o Senhor:
Porque fizeste esta ação, \n"},
{"Deveras, Eu
abençoarei a tua semente, \n"},
{"E nela, as nações
benditas se farão. \n"},
{"
\n"},
{"O nosso
Isaque oferecemos com firmeza
\n"},
{"No Moriá onde
finda o ideal, \n"},
{"Pois foi ali
que alcançaram fortaleza, \n"},
{"Os
vencedores, sob canto angelical;
\n"},
{"Ali, o nosso
Deus jurou fidelidade, \n"},
{"Também os
santos se encheram de valor,
\n"},
{"E só teremos
a perfeita santidade, \n"},
{"Depois que
formos para o monte do Senhor \n"}};
for ( i = 0; i < texto.length; i++ ) {
str = str + texto [ i ] [ 0 ];
for ( j = 1; j < texto [ i ].length; j++ ) {
str = str + texto [ i ] [ j ] + " ";
}
}
ctx.setFill ( Color.BLACK );
ctx.fillText ( str, 155, 100 );
}
//
/////////////////////////////////////////////////////////////////
public static int Menu_Bar ( ) {
EventHandler < ActionEvent > action = changeTabPlacement ( );
Menu menu = new Menu ( "Arq" );
MenuItem top = new MenuItem ( "Exit" );
top.setOnAction ( action );
menu.getItems ( ).add ( top );
MenuItem bottom = new MenuItem ( "Inf" );
bottom.setOnAction ( action );
menu.getItems ( ).add ( bottom );
menuBar.getMenus ( ).add ( menu );
ro_ot.prefHeightProperty (
).bind ( scene.heightProperty ( ) );
ro_ot.prefWidthProperty ( ).bind ( scene.widthProperty ( ) );
borderPane.setTop ( menuBar );
return 0;
}
//
/////////////////////////////////////////////////////////////////
private static EventHandler < ActionEvent > changeTabPlacement ( ) {
return new EventHandler < ActionEvent > ( ) {
public void handle ( ActionEvent event ) {
MenuItem mItem = ( MenuItem ) event.getSource ( );
String side = mItem.getText ( );
int b = 0;
if ( "Exit".equalsIgnoreCase ( side ) ) {
System.exit ( 0 );
}
else if ( "Inf".equalsIgnoreCase ( side ) ) {
textField.clear ( );
But_ton_2 ( );
ctx.clearRect ( 150, 280, 400, 80 );
b = 3;
Sleep ( 2800, b );
b = 2;
Sleep ( 1800, b );
}
}
};
}
//
/////////////////////////////////////////////////////////////////
@Override
public void start ( Stage stage ) {
stage.setTitle ( "ARRAY
MULTIDIMENSIONAL DE STRING EM JAVAFX" );
stage.setScene ( scene );
stage.setResizable ( false );
s1.setPannable ( true );
s1.setLayoutX ( 20 );
s1.setLayoutY ( 20 );
s1.setPrefSize ( 660, 1960 );
s1.setPrefHeight ( 360 );
s1.setContent ( canvas );
ctx.setFill ( Color.RED );
ctx.setFont ( Font.font ( "Serif", FontWeight.BOLD, 20 ) );
ctx.fillText ( "ARRAY
MULTIDIMENSIONAL DE STRING", 140, 30 );
ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "IMPRIMINDO
ABAIXO O ARRAY DE STRING", 180, 60 );
/////////////////////////////////////////////////////////////////////////
root.getChildren ( ).add ( s1 );
Menu_Bar ( );
Ar_ay ( );
hbox.setPadding ( new Insets ( 340, 0, 10, 22 ) );
ctx.setFont ( Font.font ( "Tahoma", FontWeight.NORMAL, 12 ) );
textField.setPromptText("Pesquisa");
root.getChildren ( ).add ( hbox );
borderPane.setPadding ( new Insets ( 22, 0, 10, 22 ) );
root.getChildren ( ).add ( borderPane );
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.