JavaFX - Efeitos
Um efeito é qualquer ação que aprimora a aparência dos gráficos. No JavaFX, um efeito é um algoritmo aplicado aos nós para melhorar sua aparência visualmente. A propriedade de efeito doNode classe é usada para especificar o efeito.
No JavaFX, você pode definir vários efeitos para um nó, como bloom, blur e glow. Cada um desses efeitos é representado por uma classe e todas essas classes estão disponíveis em um pacote denominadojavafx.scene.effect.
Aplicação de efeitos a um nó
Você pode aplicar um efeito a um nó usando o setEffect()método. Para este método, você precisa passar o objeto do efeito.
Para aplicar um efeito a um nó, você precisa -
Crie o nó.
Instancie a respectiva classe do efeito que precisa ser aplicado.
Defina as propriedades do efeito.
Aplique o efeito ao nó usando o setEffect() método.
Criando os nós
Em primeiro lugar, crie os nós em um aplicativo JavaFX instanciando suas respectivas classes.
Por exemplo, se você deseja aplicar o efeito de brilho a uma imagem em seu aplicativo. Em primeiro lugar, você precisa criar um nó de imagem instanciando a classe Image e definir sua visualização conforme mostrado abaixo.
//Creating an image
Image image = new Image("https://www.tutorialspoint.com/green/images/logo.png");
//Setting the image view
ImageView imageView = new ImageView(image);
//Setting the position of the image
imageView.setX(100);
imageView.setY(70);
//setting the fit height and width of the image view
imageView.setFitHeight(200);
imageView.setFitWidth(400);
//Setting the preserve ratio of the image view
imageView.setPreserveRatio(true);
Instanciando a respectiva classe
Instancie a classe que representa o efeito que deve ser aplicado ao nó criado.
Por exemplo - para aplicar o efeito de brilho, você precisa instanciar o Glow classe conforme mostrado na seguinte caixa de código -
Glow glow = new Glow();
Definindo as propriedades do efeito
Depois de instanciar a classe, você precisa definir as propriedades do efeito usando seus métodos de definição.
Por exemplo - Para desenhar uma caixa tridimensional, você precisa passar sua largura, altura e profundidade. Você pode especificar esses valores usando seus respectivos métodos de configuração, conforme mostrado abaixo -
//setting the level property
glow.setLevel(0.9);
Adicionando Efeito ao Nó
Finalmente, você pode aplicar o efeito necessário ao nó usando o setEffect()método. Por exemplo: Para definir o efeito de brilho para o nó da imagem, você precisa passar o objeto da classe Glow para este método da seguinte maneira -
imageView.setEffect(glow);
JavaFX Effects- A tabela a seguir fornece a lista de vários efeitos (classes) fornecidos pelo JavaFX. Essas classes existem no pacote chamadojavafx.scene.effect.
S.No | Forma e Descrição |
---|---|
1 | Ajuste de cor Você pode ajustar a cor de uma imagem aplicando o efeito de ajuste de cor a ela. Isso inclui o ajuste dohue, saturation, brightness e contrast em cada pixel A classe chamada ColorAdjust do pacote javafx.scene.effect representa o efeito de ajuste de cor. |
2 | Entrada de Cor O efeito de entrada de cor fornece a mesma saída de desenhar um retângulo e preenchê-lo com cores. Ao contrário de outros efeitos, se esse efeito for aplicado a qualquer nó, ele exibe apenas uma caixa retangular (não o nó). Este efeito é usado principalmente para passar como uma entrada para outros efeitos. A classe chamada ColorInput do pacote javafx.scene.effect representa o efeito de entrada de cor. |
3 | Entrada de imagem O efeito de entrada de imagem no JavaFX apenas incorpora uma imagem à tela do JavaFX. Assim como o efeito Entrada de cor (é usado para passar a região retangular colorida especificada como entrada para outro efeito), o efeito Entrada de imagem é usado para passar a imagem especificada como entrada para outro efeito. A classe chamada ImageInput do pacote javafx.scene.effect representa o efeito de entrada de imagem. |
4 | Mistura Em geral, mistura significa mistura de duas ou mais coisas ou substâncias diferentes. Se aplicarmos este efeito de mistura, ele pega os pixels de duas entradas diferentes, no mesmo local e produz uma saída combinada com base noblend mode. A classe chamada Blend do pacote javafx.scene.effect representa o efeito de mistura. |
5 | Flor Ao aplicar o efeito de floração, os pixels em algumas partes do nó brilham. A classe chamada Bloom do pacote javafx.scene.effect representa o efeito de flor. |
6 | Brilho Assim como o bloom, o efeito Glow torna a imagem de entrada fornecida para brilhar, este efeito torna os pixels brilhantes da entrada mais brilhantes. A classe chamada Glow do pacote javafx.scene.effect representa o efeito de brilho. |
7 | Borrão de caixa Ao aplicar este efeito de desfoque a um nó, não fica claro. Desfoque de caixa é um tipo de efeito de desfoque fornecido pelo JavaFX. Nesse efeito, quando aplicamos desfoque a um nó, um filtro de caixa simples é usado. A classe chamada BoxBlur do pacote javafx.scene.effect representa o efeito boxblur. |
8 | GaussianBlur Assim como Box Blur Gaussian é um efeito para desfocar os nós no JavaFX. A única diferença noGaussian Blur effect é que um kernel de convolução gaussiana é usado para produzir um efeito de desfoque. A classe chamada GaussianBlur do pacote javafx.scene.effect representa o efeito Desfoque Gaussiano. |
9 | MotionBlur Assim como os efeitos gaussianos, o Motion Blur é um efeito para desfocar os nós no JavaFX. Ele também usa um núcleo de convolução gaussiana para produzir um efeito de desfoque, mas a diferença é que neste efeito o núcleo de convolução gaussiana é usado com um ângulo especificado. A classe chamada MotionBlur do pacote javafx.scene.effect representa o efeito Motion Blur. |
10 | Reflexão Ao aplicar o efeito de reflexão a um nó no JavaFX, um reflexo dele é adicionado na parte inferior do nó. A classe chamada Reflection do pacote javafx.scene.effect representa o efeito de reflexão. |
11 | SepiaTone Ao aplicar o efeito de tom Sépia a um nó em JavaFX (imagem em geral), ele é tonificado com uma cor marrom avermelhada. A classe chamada SepiaTone do pacote javafx.scene.effect representa o efeito de tom sépia. |
12 | Sombra Este efeito cria uma duplicata do nó especificado com bordas desfocadas. A classe chamada Shadow do pacote javafx.scene.effect representa o efeito de tom sépia. |
13 | DropShadow Ao aplicar este efeito a um nó, uma sombra será criada atrás do nó especificado. A classe chamada DropShadow do pacote javafx.scene.effect representa o efeito de sombra projetada. |
14 | Sombra interior Ao aplicar este efeito a um nó, uma sombra será criada dentro das bordas do nó. A classe chamada InnerShadow do pacote javafx.scene.effect representa o efeito de sombra interno. |
15 | Iluminação O efeito de iluminação é usado para simular a luz de uma fonte de luz. Existem diferentes tipos de fontes de luz, nomeadamentepoint, distant e spot. A classe chamada Lighting do pacote javafx.scene.effect representa o efeito de iluminação. |
16 | Light.Distant Ao aplicar este efeito a um nó, uma luz é simulada sobre ele, como se estivesse sendo gerada por uma fonte de luz distante. Distant Light Source- Uma fonte que está muito longe do nó. Aqui, a luz é atenuada em uma direção da fonte. A classe chamada Light.Distant do pacote javafx.scene.effect representa a fonte de luz distante. |
17 | Ponto de luz Ao aplicar este efeito a um nó, uma luz é simulada sobre ele, como se estivesse sendo gerada por um spot light. Spot light Source- A luz desta fonte atenua em todas as direções. A intensidade da luz depende da distância do objeto da fonte. A classe chamada Light.Spot do pacote javafx.scene.effect representa a fonte de luz distante. |
18 | Point.Spot Ao aplicar este efeito a um nó, uma luz é simulada sobre ele, como se estivesse sendo gerada por uma fonte de luz pontual. Point Light Source- A luz desta fonte atenua em todas as direções a partir de um único ponto. A intensidade da luz depende da distância do objeto da fonte. A classe chamada Point.Spot do pacote javafx.scene.effect representa a luz pontual. |