Como tudo surpreende em javaFx,
a classe Button não poderia ser diferente.
Ao clicar num botão, eventos são acionados
dando a ideia de que um botão real foi pressionado.
O melhor disto tudo, é que esta classe foi estendida
a classe Labeled, para que um texto pudesse ser
exibido no próprio botão junto com uma imagem,
ou individualmente ou qualquer um dos dois.
Podemos usar os seguintes construtores
para criar um botão no JavaFX.
//Criando botão sem legenda de texto.
Button btn_1 = new Button ( );
//Criando botão com legenda de texto.
Button btn_2 = new Button ( "JavaFx" );
//Criando botão com legenda de texto e ícone
Image image = new Image ( getClass().getResourceAsStream ( "OK.png" ) );
Button button = new Button("OK", new ImageView( image ) );
Ainda podemos aplicar efeitos do pacote javafx.scene.effect
a um botão, neste exemplo, estamos aplicando o efeito
DropShadow ao botão "Palmeira_2.png",
e estilos CSS para mudar a aparência do botão.
Quando o botão "Palmeira_2.png" é pressionado,
o método setOnAction da classe Button dispara
o evento event exibindo o Label lbl:
"Campeão paulista 2008" e os créditos do autor
que sou eu mesmo, e ainda aplica um efeito
rotativo no próprio botão.
Se o botão fechar for acionado o programa
fecha imediatamente.
Veja abaixo uma imagem do programa em execução:
Imagem Palmeiras_2.png:
Veja abaixo o vídeo do programa:
Veja abaixo o código do programa:
a classe Button não poderia ser diferente.
Ao clicar num botão, eventos são acionados
dando a ideia de que um botão real foi pressionado.
O melhor disto tudo, é que esta classe foi estendida
a classe Labeled, para que um texto pudesse ser
exibido no próprio botão junto com uma imagem,
ou individualmente ou qualquer um dos dois.
Podemos usar os seguintes construtores
para criar um botão no JavaFX.
//Criando botão sem legenda de texto.
Button btn_1 = new Button ( );
//Criando botão com legenda de texto.
Button btn_2 = new Button ( "JavaFx" );
//Criando botão com legenda de texto e ícone
Image image = new Image ( getClass().getResourceAsStream ( "OK.png" ) );
Button button = new Button("OK", new ImageView( image ) );
Ainda podemos aplicar efeitos do pacote javafx.scene.effect
a um botão, neste exemplo, estamos aplicando o efeito
DropShadow ao botão "Palmeira_2.png",
e estilos CSS para mudar a aparência do botão.
Quando o botão "Palmeira_2.png" é pressionado,
o método setOnAction da classe Button dispara
o evento event exibindo o Label lbl:
"Campeão paulista 2008" e os créditos do autor
que sou eu mesmo, e ainda aplica um efeito
rotativo no próprio botão.
Se o botão fechar for acionado o programa
fecha imediatamente.
Veja abaixo uma imagem do programa em execução:
Imagem Palmeiras_2.png:
Veja abaixo o vídeo do programa:
Veja abaixo o código do programa:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import javafx.animation.RotateTransition;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.effect.DropShadow;
import javafx.stage.Stage;
import javafx.scene.paint.Color;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.Pane;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.transform.Rotate;
import javafx.util.Duration;
public class PROJETO extends Application {
public static Label lbl = new Label ( );
public static Button btn_2 = new Button ( );
static Canvas canvas = new Canvas ( 620, 350 );
static GraphicsContext ctx = canvas.getGraphicsContext2D ( );
static Pane ro_ot = new Pane ( );
static Scene sce_ne = new Scene ( ro_ot, 620, 350 );
static Button btn_1 = new Button ( "FECHAR" );
static DropShadow drop = new DropShadow ( );
//
/////////////////////////////////////////////////////////////////////////
public static void Informe ( ) {
ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 13 ) );
ctx.setFill ( Color.RED );
ctx.fillText ( "Por: ", 250, 275 );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "Samuel
Lima", 280, 275 );
ctx.setFill ( Color.BLACK );
ctx.fillText ( "sa_sp10@hotmail.com", 250, 290 );
}
//
////////////////////////////////////////////////////////////////////////
public static Node Button_1 ( ) {
btn_2.setPrefWidth ( 60 );//
Largura do botão
btn_2.setLayoutX ( 285 );// Posição do botão
coluna
btn_2.setPrefHeight ( 20 );// altura do botão
btn_2.setLayoutY ( 200 );// //Posição do botão
linha
btn_2.setStyle ( "-fx-padding:
1;" + "-fx-border-style: solid
inside;"
+ "-fx-border-width: 2;" + "-fx-border-insets:
1;"
+ "-fx-border-radius: 1;" + "-fx-border-color:
white;");
btn_2.setEffect ( drop );
btn_2.setOnAction ( new EventHandler < ActionEvent > ( ) {
@Override
public void handle ( ActionEvent event ) {
RotateTransition rotate = new RotateTransition ( );
// Definindo a duração da transição
rotate.setDuration ( Duration.millis ( 1000 ) );
// Configurando o nó
para a transição
rotate.setNode ( btn_2 );
// Ajustando o eixo da
rotação
rotate.setAxis ( Rotate.Y_AXIS );
// Ajustando o ângulo
da rotação
rotate.setByAngle ( 360 );
// Definindo a
contagem de ciclos para a
// transição
rotate.setCycleCount ( 50 );
// Configurando o
valor do reverso automático
// para falso
rotate.setAutoReverse ( false );
drop.setOffsetX ( 2.0f );
drop.setOffsetY ( 3.0 );
drop.setColor ( Color.color ( 0.4, 0.4, 0.4 ) );
lbl.setEffect ( drop );
//Determina o tipo e
tamanho da fonte
lbl.setFont ( new Font ( "Cambria", 25 ) );
//Posiciona o label na
horizontal
lbl.setLayoutX ( 265 );
//Posiciona o label na
vertical
lbl.setLayoutY ( 100 );
//Aplica cor no rótulo
lbl.setTextFill ( Color.GREEN );
lbl.setText ( "Campeão
paulista de 2008" );
lbl.setPrefWidth ( 120 );
lbl.setWrapText ( true );
rotate.play ( );
Informe ( );
}
} );
return btn_2;
}
//
////////////////////////////////////////////////////////////////////////
public static Node Click ( ) {
btn_1.setPrefWidth ( 100 );// Largura do botão
btn_1.setLayoutX ( 267 );// Posição do botão
coluna
btn_1.setPrefHeight ( 20 );// altura do botão
btn_1.setLayoutY ( 300 );// //Posição do botão
linha
btn_1.setStyle ( "-fx-padding:
1;" + "-fx-border-style: solid
inside;"
+ "-fx-border-width: 2;" + "-fx-border-insets:
1;"
+ "-fx-border-radius: 1;" + "-fx-border-color:
blue;"
+ "-fx-font-style: italic;"
+ "-fx-font-family: Consolas;"
);
btn_1.setOnAction ( new EventHandler < ActionEvent > ( ) {
@Override
public void handle ( ActionEvent event ) {
System.exit ( 0 );
}
} );
return btn_1;
}
//
////////////////////////////////////////////////////////////////////////
public void start ( Stage stage ) throws FileNotFoundException {
ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
stage.setTitle ( "JAVAFX - A
CLASSE BUTTON " );
//Criando moldura e dando efeitos
ro_ot.setStyle ( "-fx-padding:
5;" + "-fx-border-style: solid inside;"
+ "-fx-border-width:
15;" + "-fx-border-insets: 5;"
+ "-fx-border-radius:
5;" + "-fx-border-color: red;");
ctx.setFill ( Color.RED );
ctx.fillText ( "JAVAFX - A
CLASSE BUTTON", 220, 50 );
//Endereço para abrir imagem
Image image = new Image ( new FileInputStream (
"H:\\eclipse -
luna java\\PROJETOS\\PROJETO\\src\\Foto\\Palmeiras_2.png" ) );
btn_2.setGraphic ( new ImageView ( image ) );
Click ( );
Button_1 ( );
ro_ot.getChildren ( ).addAll ( canvas, btn_1, btn_2, lbl );
stage.setScene ( sce_ne );
stage.show ( );
}
//
/////////////////////////////////////////////////////////////////////////
public static void main ( String [ ] args ) {
Application.launch ( args );
}
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.