contínuos de valores numéricos opcionais é o Slider.
Seu aspecto e funcionamento é semelhante a um slider
(objeto) encontrado em diversos aparelhos eletrônicos.
Neste exemplo temos uma trilha e um botão que desliza
quando arrastado para direita ou esquerda,
e enquanto os valores numéricos são mostrados num
contador uma imagem opcionalmente colocada por mim,
aumenta e diminui de tamanho.
Com este controle que desliza podemos facilmente
mostrar rótulos, gráficos, áudio, vídeo etc..
Sempre variando seus valores opcionalmente pelo
botão deslizante.
Como tudo nesta poderosa biblioteca impressiona,
pelo seu alto desempenho e facilidade de uso,
Com a classe Slider não é diferente.
Basicamente só usamos três variáveis fundamentais
que são: min, max e value.
O valor deve ser sempre um número dentro do intervalo
definido por min e max. min deve ser sempre menor que max.
min padrão é 0, enquanto o valor max padrão é 100.
Neste exemplo criei um controle deslizante cujo intervalo,
varia entre 0 a 3, e o valor padrão é 1.5:
Veja abaixo uma imagem do programa em execução:
Veja abaixo um vídeo com o funcionamento do programa:
Veja abaixo o código do programa:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import javafx.application.Application;
import javafx.beans.value.ObservableValue;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.control.Label;
import javafx.scene.control.Slider;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.GridPane;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.stage.Stage;
public class PROJETO extends Application {
BorderPane root = new BorderPane ( );
Canvas canvas = new Canvas ( 600, 500 );
Scene scene = new Scene ( root, 600, 500 );
GraphicsContext ctx = canvas.getGraphicsContext2D ( );
GridPane grid = new GridPane ( );
final Slider escala = new Slider ( 0.0, 3, 1.5 );
final Label obter_escala = new Label ( "Escala" );
final Label obter_valor_escala = new Label ( Double.toString ( escala
.getValue ( ) ) );
final static Color textColor = Color.RED;
////////////////////////////////////////////////////////////////////////////
public void Informe ( ) {
ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 13 ) );
ctx.setFill ( Color.RED );
ctx.fillText ( "Por: ", 200, 340 );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "Samuel
Lima", 240, 340 );
ctx.setFill ( Color.BLACK );
ctx.fillText ( "sa_sp10@hotmail.com", 200, 355 );
ctx.setFill ( Color.RED );
ctx.fillText ( " MUITO
OBRIGADO", 220, 390 );
}
//
/////////////////////////////////////////////////////////////////////////
@Override
public void start ( Stage stage ) throws FileNotFoundException {
stage.setTitle ( "JAVAFX -
EXEMPLO DE SLIDER" );
final Image image = new Image (
new FileInputStream (
"H:\\eclipse -
luna java\\PROJETOS\\PROJETO\\src\\Foto\\java.png" ) );
final ImageView java = new ImageView ( image );
//Criando moldura e
aplicando efeitos
grid.setStyle ( "-fx-padding:
5;"
+ "-fx-border-style: solid
inside;"
+ "-fx-border-width: 12;"
+ "-fx-border-insets: 5;"
+ "-fx-border-radius: 5;"
+ "-fx-border-color: darkblue;" );
//Um toque de requinte
no Slider
escala.setStyle ( "-fx-padding:
5;"
+ "-fx-border-style: solid inside;"
+ "-fx-border-width: 2;"
+ "-fx-border-insets: 5;"
+ "-fx-border-radius: 5;"
+ "-fx-border-color: darkblue;" );
//Um toque de requinte
no Label
obter_escala .setStyle ( "-fx-padding:
5;"
+ "-fx-border-style: solid
inside;"
+ "-fx-border-width: 2;"
+ "-fx-border-insets: 5;"
+ "-fx-border-radius: 5;"
+ "-fx-border-color: darkblue;" );
//Um toque de requinte
no valor da escala
obter_valor_escala .setStyle ( "-fx-padding:
5;"
+ "-fx-border-style: solid
inside;"
+ "-fx-border-width: 2;"
+ "-fx-border-insets: 5;"
+ "-fx-border-radius: 5;"
+ "-fx-border-color:
darkblue;" );
ctx.setFont ( Font.font ( "Arial", FontWeight.BOLD, 15 ) );
ctx.setFill ( Color.RED );
ctx.fillText ( "JAVAFX -
EXEMPLO DE SLIDER", 170, 30 );
//Altura da imagem
java.setFitHeight ( 235 );
//Largura da imagem
java.setFitWidth ( 100 );
//Mantendo as proporções
java.setPreserveRatio ( true );
//Restrições para a imagem
GridPane.setConstraints ( java, 1, 2 );
//Períodos para colunas da imagem
GridPane.setColumnSpan ( java, 1 );
obter_escala .setTextFill ( textColor );
GridPane.setConstraints ( obter_escala , 0, 80 );
escala.valueProperty ( ).addListener (
( ObservableValue < ? extends Number > ov, Number old_val,
Number new_val ) -> {
java.setScaleX ( new_val.doubleValue ( ) );
java.setScaleY ( new_val.doubleValue ( ) );
obter_valor_escala.setText
( String.format ( "%.2f", new_val ) );
} );
GridPane.setConstraints ( escala, 1, 80 );
obter_valor_escala.setTextFill ( textColor );
GridPane.setConstraints ( obter_valor_escala, 2, 80 );
grid.setVgap ( 5 );
//grid.setHgap ( 32 );
grid.add ( java, 2, 20, 20, 37 );
root.getChildren ( ).addAll ( canvas );
grid.getChildren ( ).addAll ( root, escala, obter_escala,
obter_valor_escala );
scene.setRoot ( grid );
Informe ( );
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.