quarta-feira, 8 de agosto de 2018

JavaFx - fontes com efeitos innershadow

InnerShadow (sombra interna),
é um efeito que renderiza uma sombra
dentro das bordas do conteúdo
determinado com a cor, o raio e o
deslocamento especificado.

A classe chamada InnerShadow,
pertence ao pacote javafx.scene.effect,
e representa o efeito de sombra interno.
Esta classe contém dez propriedades, que são:
color - Esta propriedade é do tipo Color representando a cor da sombra. 
tipo de desfoque - Essa propriedade é do tipo BlurType e 
representa o tipo de efeito de desfoque usado para desfocar a sombra. 
radius - Esta propriedade é do tipo double e representa o raio do kernel do shadow blur.
width - Esta propriedade é do tipo double e representa a largura do kernel do shadow blur. 
height - Esta propriedade é do tipo double e representa a altura do kernel do shadow blur. 
input - Esta propriedade é do tipo Effect e representa uma entrada para o efeito de sombra.
spread - essa propriedade é do tipo double; representa a propagação da sombra.
 offsetX - Esta propriedade é do tipo double, representa o deslocamento de sombra na direção x, em pixels. 
offsetY - Esta propriedade é do tipo double, representa o deslocamento de sombra na direção y em pixels.
 choke - Esta propriedade é do tipo double e representa o estrangulamento da sombra. 

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



Veja abaixo o código do programa


import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.effect.*;

public class PROJETO extends Application {
     Pane root = new Pane ( );
     Scene scene = new Scene ( root, 600, 310 );
     Text t_1 = new Text ( );
     Text t_2 = new Text ( );
     Canvas canvas = new Canvas ( 600, 310 );
     GraphicsContext ctx = canvas.getGraphicsContext2D ( );
     InnerShadow is = new InnerShadow ( );
     Group g = new Group ( );
     // /////////////////////////////////////////////////////////////////////////
     public void Informe ( ) {
         ctx.setFont ( Font.font ( "Helvetica", FontWeight.NORMAL,
                   FontPosture.ITALIC, 14 ) );
         ctx.setFill ( Color.RED );
         ctx.fillText ( "Por: ", 250, 225 );
         ctx.setFill ( Color.BLUE );
         ctx.fillText ( "Samuel Lima", 280, 225 );
         ctx.setFill ( Color.BLACK );
         ctx.fillText ( "sa_sp10@hotmail.com", 250, 240 );
         ctx.setFill ( Color.RED );
         ctx.fillText ( "MUITO OBRIGADO", 250, 280 );
     }
     // /////////////////////////////////////////////////////////////////////////
     public Node Mensagem_1 ( ) {
         t_1.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
                   FontPosture.ITALIC, 140 ) );
         is.setOffsetX ( 4.0f );
         is.setOffsetY ( 4.0f );
         t_1.setEffect ( is );
         t_1.setLayoutX ( 40 );
         t_1.setLayoutY ( 70 );
         t_1.setFill ( Color.YELLOW );
         t_1.setText ( "Java" );    
         t_1.setTranslateX ( 20 );
         t_1.setTranslateY ( 110 );
         return t_1;
     }
     // /////////////////////////////////////////////////////////////////////////
     public Node Mensagem_2 ( ) {
         ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
                   FontPosture.ITALIC, 10 ) );
         ctx.setFill ( Color.BLACK );//InnerShadow
         ctx.fillText ( "TM", 530, 90 );
         t_2.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
                   FontPosture.ITALIC, 140 ) );
         is.setOffsetX ( 4.0f );
         is.setOffsetY ( 4.0f );
         t_2.setEffect ( is );
         t_2.setLayoutX ( 335 );
         t_2.setLayoutY ( 70 );
         t_2.setFill ( Color.BLUE );
         t_2.setText ( "FX" ); 
         t_2.setTranslateX ( 20 );
         t_2.setTranslateY ( 110 );
         return t_2;
     }
     // /////////////////////////////////////////////////////////////////////////
     @Override
     public void start ( Stage stage ) {
         stage.setTitle ( "JAVAFX - FONTES COM EFEITOS INNERSHADOW" );  
         // Usando fonte em italic
         ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
                   FontPosture.ITALIC, 20 ) );
         ctx.setFill ( Color.RED );//InnerShadow
         ctx.fillText ( "JAVAFX - FONTES COM EFEITOS INNERSHADOW", 75, 40 );    
         //Criando uma moldura com .css
         root.setStyle (
                   "-fx-padding: 5;"
                            + "-fx-border-style: solid inside;"
                            + "-fx-border-width: 10;"
                            + "-fx-border-insets: 5;"
                            + "-fx-border-radius: 5;"
                            + "-fx-border-color: black;"
                            //+ "-fx-background-color: radial-gradient"
                          //+ "(center 50% -40%, radius 200%, #00FFFF"
                          //+ " 45%, #00BFFF 50%);"
                          + "-fx-background-color: linear-gradient(from 0% 0% to"
                          + "        100% 100%, pink 0%, silver 100%);");                                    
         Mensagem_1 ( );
         Mensagem_2 ( );
         Informe ( );
         root.getChildren ( ).addAll ( t_1, t_2, canvas  );
         stage.setScene ( scene );
         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.