import java.awt.Toolkit;
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.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
import javafx.scene.control.TextInputDialog;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.Pane;
import javafx.scene.control.Button;
import javafx.geometry.Insets;
public class PROJETO extends Application {
static String [ ] texto = {
"
\n",
"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"};
//
/////////////////////////////////////////////////////////////////
static String [ ] oc = new String [ texto.length ];
static Stage stage;
static String pesq;
private static String str = "";
static String str_1 = "";
static String str_2 = "";
static String str_3 = "";
static String str_4 = "";
static String str_6 = "";
static int i = 0, k = 0;
static Group root = new Group ( );
static Pane ro_ot = new Pane ( );
static Scene scene = new Scene ( root, 790, 350 );
static Canvas canvas = new Canvas ( 2000, 2000 );
static Canvas can_vas = new Canvas ( 2000, 2000 );
static GraphicsContext ctx = canvas.getGraphicsContext2D
( );
static GraphicsContext ct_x = can_vas.getGraphicsContext2D
( );
static ScrollPane s1 = new ScrollPane ( );
static ScrollPane s1_2 = new ScrollPane ( );
static BorderPane borderPane = new BorderPane ( );
static MenuBar menuBar = new MenuBar ( );
//
///////////////////////////////////////////////////////////////////
static class Temp {
// Chamando uma função depois de um certo
tempo
public void Tempo_4 ( ) {
ctx.setFont ( Font.font ( "Tahoma", FontWeight.BOLD, 25 ) );
ctx.setStroke ( Color.BLACK );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "MUITO
OBRIGADO", 70, 300 );
ctx.strokeText ( "MUITO
OBRIGADO", 70, 300 );
}
public void Tempo_3 ( ) {
ctx.setFill ( Color.BLACK );
ctx.fillText ( "Programador
em C/C++ e java", 70, 140 );
}
public void Tempo_2 ( ) {
ctx.setFill ( Color.RED );
ctx.fillText ( "Samuel
Lima", 70, 120 );
}
public void Tempo_1 ( ) {
ctx.setFont ( Font.font ( "Tahoma", FontWeight.BOLD, 15 ) );
ctx.setFill ( Color.BLACK );
ctx.fillText ( "Programa
criado por: ", 70, 100 );
}
//
/////////////////////////////////////////////////////////////////
public 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 ( );
if ( k == 4 )
Tempo_4 ( );
} );
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 ( 735 );// Posição do botão
btn_2.setPrefHeight ( 24 );// altura do botão
btn_2.setLayoutY ( 310 );// //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 ( 10, 20, 400, 2000 );
}
} );
// personalização do botão com css
btn_2.setStyle ( "-fx-font: 10
arial; -fx-base: #00ffff;" );
btn_2.setStyle ( "-fx-background-color:
blue" );
btn_2.addEventHandler ( MouseEvent.MOUSE_ENTERED,
new EventHandler < MouseEvent > ( ) {
@Override
public void handle ( MouseEvent e ) {
btn_2.setStyle ( "-fx-font: 10
arial; -fx-base: #00ffff;" );
btn_2.setStyle ( "-fx-background-color:
red" );
}
} );
btn_2.addEventHandler ( MouseEvent.MOUSE_EXITED,
new EventHandler < MouseEvent > ( ) {
@Override
public void handle ( MouseEvent e ) {
btn_2.setStyle ( "-fx-font: 10
arial; -fx-base: #00ffff;" );
btn_2.setStyle ( "-fx-background-color:
blue" );
}
} );
root.getChildren ( ).add ( btn_2 );
return 0;
}
//
/////////////////////////////////////////////////////////////////
public static int Menu_Bar ( String args ) {
EventHandler < ActionEvent > action = changeTabPlacement ( );
Menu menu = new Menu ( "Arq" );
MenuItem pesq = new MenuItem ( "Pesq" );
pesq.setOnAction ( action );
menu.getItems ( ).add ( pesq );
MenuItem sobre = new MenuItem ( "Sobre" );
sobre.setOnAction ( action );
menu.getItems ( ).add ( sobre );
MenuItem sair = new MenuItem ( "Sair" );
sair.setOnAction ( action );
menu.getItems ( ).add ( sair );
menuBar.getMenus ( ).add ( menu );
ro_ot.prefHeightProperty (
).bind ( scene.heightProperty ( ) );
ro_ot.prefWidthProperty ( ).bind ( scene.widthProperty ( ) );
// personalização do menubar com css
borderPane.setStyle ( "-fx-font: 10
arial; -fx-base: #00ffff;");
borderPane.setTop ( menuBar );
return 0;
}
//
/////////////////////////////////////////////////////////////////
private static int Imprime ( ) {
for ( i = 1; i < texto.length; i++ ) {
str = str + texto [ i ];
str_1 += i + "\n";
}
ct_x.setFill ( Color.BLACK );
ct_x.fillText ( str, 35, 90 );
ct_x.setFill ( Color.RED );
ct_x.fillText ( str_1, 10, 90 );
return 0;
}
private static int Pesquisa ( ) {
TextInputDialog dialogoNome = new TextInputDialog ( );
dialogoNome.setTitle ( "Pesquisando
palavras" );
dialogoNome.setHeaderText ( "Digite uma
palavra " );
dialogoNome.setContentText ( "Palavra:
" );
dialogoNome.showAndWait ( ).ifPresent ( v -> pesq = v );
Alert alert = new Alert ( AlertType.INFORMATION );
alert.setTitle ( "Atenção" );
alert.setHeaderText ( null );
ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
boolean achou = false;
for ( i = 1; i < texto.length; i++ ) {
str_6 = str_6 + texto [ i ];
//toLowerCase() ignora fontes maiúscula
e menúscula
if ( texto [ i ].toLowerCase().contains ( pesq.toLowerCase ( ) ) ){
achou = true;
oc [ k ] = texto [ i ];
k++;
str_2 = str_2 + texto [ i ];
}else{
oc [ k ] = "\n";
str_2 = str_2 + oc [ k ];
}
str_3 += i + "\n";
}
str_4 += k;
if ( achou ) {
ctx.setFill ( Color.BLUE );
ctx.fillText ( "Resultados
das pesquisas", 70, 30 );
ctx.setFill ( Color.RED );
ctx.fillText ( str_4, 50, 60 );
ctx.setFill ( Color.BLACK );
ctx.fillText ( "linhas
possuem a palavra ", 70, 60 );
ctx.setFill ( Color.RED );
ctx.fillText ( pesq, 250, 60 );
ctx.setFill ( Color.BLACK );
ctx.fillText ( str_6, 35, 90 );
ctx.setFill ( Color.RED );
ctx.fillText ( str_2, 35, 90 );
ctx.setFill ( Color.RED );
ctx.fillText ( str_3, 10, 90 );
} else {
//Toolkit.getDefaultToolkit ( ).beep (
);
ctx.setFill ( Color.MAGENTA );
ctx.fillText ( "Nenhuma ocorrência
de ", 50, 100 );
ctx.setFill ( Color.RED );
ctx.fillText ( pesq, 220, 100 );
}
But_ton_2 ( );
return 0;
}
//
/////////////////////////////////////////////////////////////////
private static EventHandler < ActionEvent > changeTabPlacement ( ) {
return new EventHandler < ActionEvent > ( ) {
public void handle ( ActionEvent event ) {
Temp Tem_po = new Temp ( );
MenuItem mItem = ( MenuItem ) event.getSource ( );
String side = mItem.getText ( );
if ( "Sobre".equalsIgnoreCase ( side ) ) {
int b = 0;
b = 1;
Tem_po.Sleep ( 800, b );
b = 2;
Tem_po.Sleep ( 1800, b );
b = 3;
Tem_po.Sleep ( 2800, b );
b = 4;
Tem_po.Sleep ( 3800, b );
But_ton_2 ( );
} else if ( "Pesq".equalsIgnoreCase ( side ) ) {
str_2 = "";
str_3 = "";
str_4 = "";
str_6 = "";
pesq = "";
k = 0;
Pesquisa ( );
}
if ( "Sair".equalsIgnoreCase ( side ) ) {
System.exit ( 0 );
}
}
};
}
//
/////////////////////////////////////////////////////////////////
public static int Scrool_Pane ( ) {
// início do scroll da direita
s1.setLayoutX ( 400 );
s1.setPrefSize ( 400, 1960 );
s1.setPrefHeight ( 360 );
s1.setContent ( canvas );
//personalização do scroll
s1.setStyle ( "-fx-font-style:
normal;"
+ "
-fx-font-weight: bolder;"
+ " -fx-font-size: 20px;"
+ "-fx-alignment: center;");
root.getChildren ( ).add ( s1 );
return 0;
}
//
/////////////////////////////////////////////////////////////////
public static int Scrool_Pane_2 ( ) {
s1_2.setPrefSize ( 400, 1960 );// divide os scroll
s1_2.setPrefHeight ( 360 );// Altura
s1_2.setContent ( can_vas );
//personalização do scroll
s1_2.setStyle ( "-fx-font-style:
normal;"
+ "
-fx-font-weight: bolder;"
+ " -fx-font-size: 20px;"
+ "-fx-alignment: center;");
root.getChildren ( ).add ( s1_2 );
return 0;
}
//
/////////////////////////////////////////////////////////////////
@Override
public void start ( Stage stage ) {
String args = null;
stage.setTitle ( "PESQUISANDO
STRING EM JAVAFX - AVANÇADO II" );
stage.setScene ( scene );
root.setStyle (
"-fx-font-style:
normal;"
+ "
-fx-font-weight: bolder;"
+ "-fx-alignment: center;"
+ "-fx-background: white;"
+ "-fx-base: darkgray;" );
stage.setResizable ( false );
ct_x.setStroke ( Color.RED );
ct_x.setFont ( Font.font ( "Times New
Roman", FontWeight.BOLD, 20 ) );
ct_x.strokeText ( "PESQUISANDO
STRING EM JAVAFX - AVANÇADO II", 100, 30 );
ct_x.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
ct_x.setFill ( Color.BLUE );
ct_x.fillText ( "Texto do
array", 40, 60 );
//
///////////////////////////////////////////////////////////////////////
Scrool_Pane ( );
Scrool_Pane_2 ( );
Menu_Bar ( args );
Imprime ( );
borderPane.setPadding ( new Insets ( 1, 0, 10, 1 ) );
root.getChildren ( ).add ( borderPane );
stage.show ( );
}
//
/////////////////////////////////////////////////////////////////
public static int main ( String args ) {
Toolkit.getDefaultToolkit ( ).beep ( );
launch ( args );
return 0;
}
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.