Como usar um Gradient Fill em JavaFX
Em vez de usar uma cor sólida, você pode especificar um preenchimento de gradiente, que combina duas cores uniformemente em toda a forma. JavaFX fornece duas classes para trabalhar com gradientes: LinearGradient e RadialGradient.
UMA gradiente linear é criado a partir de dois pontos de cor. Imagine uma linha traçada entre estes dois pontos. O preenchimento de gradiente varia a cor suavemente da cor que está definido no primeiro ponto para a cor definida no segundo ponto. Em seguida, ele estende as cores desta linha em ângulos de 90 graus para a linha para preencher uma área inteira.
UMA gradiente radial é criado a partir de um ponto central de uma cor e uma segunda cor no raio de um círculo. O preenchimento varia a cor suavemente da cor central para a cor exterior.
A tabela mostra os construtores de LinearGradient e RadialGradient classes, juntamente com o construtor para a Pare classe, que é usada para especificar as cores usadas para o gradiente.
classe Construtor | Descrição |
---|---|
LinearGradient (double STARTX, dupla starty, dupla FimX, dupla Endy, boolean proporcional, CycleMethod cycleMethod, Pare ... pára) | Cria um gradiente linear. As paradas aparecem ao longo da linedefined pelos pontos de início e fim. Cyclemethod pode ser CycleMethod.NO_CYCLE,CycleMethod.REPEAT, ou CycleMethod.REFLECT. |
RadialGradient (double focusAngle, dupla focusDistance, dupla centerX, dupla centerY, raio duplo, boolean proporcional, CycleMethod cycleMethod, Pare ... pára) | Cria um gradiente radial. As paradas são circulares, startingfrom o ponto central do gradiente e se estendendo até o raio.FocusAngle é geralmente definido como zero. |
Parar (double offset, cor colorida) | Define um limite de cor no gradiente. O deslocamento é um doublethat varia de 0,0 a 1,0. Para um gradiente linear, 0,0 representsthe ponto inicial do gradiente e 1,0 representa o gradiente radial final point.For, 0,0 representa o centro e 1,0 raio representsthe. |
Vários dos parâmetros usados com esses construtores merecer um pouco de explicação:
Proporcional: Este parâmetro determina as unidades de medida utilizadas para os pontos inicial e final de um gradiente linear ou o ponto de centro e raio de um círculo. Se este parâmetro é falso, as coordenadas são expressos em pixels.
Se for verdade, as coordenadas variam de 0.0 a 1.0 e são proporcionais ao tamanho da forma a ser preenchido. Na maioria dos casos, é mais fácil trabalhar com coordenadas proporcionais, de modo que este parâmetro deve ser geralmente definido como verdadeiro.
CyclicalMethod: O padrão é de um gradiente de começar com uma cor, transição para uma outra cor, e depois acabam. No entanto, você pode criar gradientes que percorrer suas cores repetidamente usando um método de ciclo diferente NO_CYCLE.
Se você especificar REPEAT, o gradiente se repete para cada ciclo. Se especificar refletir, o gradiente inverte a ordem das paradas para cada ciclo.
Pare de offset: As paradas representam as cores usadas para a transição de gradiente. O parâmetro de deslocamento para uma paragem determina onde ao longo do gradiente da paragem aparece.
Um valor de 0,0 significa que o batente aparece no início de um gradiente linear ou o centro de um gradiente radial. Um valor de 1,0 significa que o batente aparece no final do gradiente linear ou no raio de um gradiente radial.
Todos os gradientes devem ter, pelo menos, dois batentes, um no início ou no centro e o outro no final ou raio. No entanto, você pode criar mais gradientes complexos adicionando paragens suplementares. Nesse caso, a paragem de deslocamento proporcional representa uma posição ao longo do comprimento da inclinação. Por exemplo, uma paragem de deslocamento de 0,5 a locais de paragem no centro da linha de gradiente ou raio.
Além disso, as paradas de início e fim não tem que ser no deslocamento 0.0 ou 1.0. Por exemplo, se você não quer um pouco de cor sólida em cada extremidade do gradiente antes da transição de cor inicia, você pode especificar 0,2 e 0,8 como os deslocamentos de parada de início e fim.
Este exemplo cria um preenchimento gradiente que varia a cor magenta ao amarelo:
GradientPaint GP = novo GradientPaint (0, 0, Color.Magenta, 0, 100, Color.YELLOW) -