em JavaFX, isto mesmo.
Nem sempre somos obrigados a utilizar
um botão da classe Button.
A explicação pra isto e o fato
de estarmos utilizando Tratamento de evento
pelos cliques do mouse (nosso caso).
Arrastar, mover, passar o cursor sobre,
um componente são tratamentos de eventos,
e o JavaFX nos dá suporte total pra isto.
Neste exemplo, criamos três figuras
geométricas e adicionamos à entrada do mouse,
assim ao clicarmos sobre estas figuras
um evento é chamado informando o estado
da imagem.
Cada botão tem dois estados:
"0 e 1", "Aceso e apagado",
que também poderia ser ligado ou desligado.
Mais informações serão adquiridas
por todos que compilarem este programa.
Veja abaixo uma imagens do programa em execução:
Veja abaixo o código do programa:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Polygon;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.stage.Stage;
import javafx.event.EventHandler;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.Pane;
public class PROJETO extends Application {
Pane root = new Pane ( );
Scene scene = new Scene ( root, 600, 310, Color.WHITE );
Canvas canvas = new Canvas ( 600, 310 );
GraphicsContext ctx = canvas.getGraphicsContext2D ( );
Circle btn_1 = new Circle ( 250, 200, 20 );
Rectangle btn_2 = new Rectangle ( 300, 185, 35, 35 );
Polygon btn_3 = new Polygon ( );
int i = 0, j = 0, k = 0;
//
/////////////////////////////////////////////////////////////////////////
public void Informe ( ) {
ctx.setFont ( Font.font ( "Arial", FontWeight.BOLD, 13 ) );
ctx.setFill ( Color.RED );
ctx.fillText ( "Por: ", 200, 250 );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "Samuel
Lima", 240, 250 );
ctx.setFill ( Color.BLACK );
ctx.fillText ( "sa_sp10@hotmail.com", 200, 265 );
ctx.setFill ( Color.RED );
ctx.fillText ( " MUITO
OBRIGADO", 250, 290 );
}
//
/////////////////////////////////////////////////////////////////////////
public void button_person_1 ( ) {
EventHandler < MouseEvent > eventHandler_1 =
new EventHandler < MouseEvent > ( ) {
@Override
public void handle ( MouseEvent e ) {
if ( i == 0 ) {
System.out.println ( "Led
aceso" );
btn_1.setFill ( Color.rgb ( 0, 255, 0 ) );
i++;
} else {
System.out.println ( "Led
apagado" );
btn_1.setFill ( Color.rgb ( 29, 111, 0 ) );
i = 0;
}
}
};
btn_1.setFill ( Color.rgb ( 29, 111, 0 ) );
btn_1.addEventFilter ( MouseEvent.MOUSE_CLICKED, eventHandler_1 );
}
//
/////////////////////////////////////////////////////////////////////////
public void button_person_2 ( ) {
EventHandler < MouseEvent > eventHandler_2 =
new EventHandler < MouseEvent > ( ) {
@Override
public void handle ( MouseEvent e ) {
if ( j == 0 ) {
System.out.println ( "Led
aceso" );
btn_2.setFill ( Color.rgb ( 254, 0, 0 ) );
j++;
} else {
System.out.println ( "Led
apagado" );
btn_2.setFill ( Color.rgb ( 139, 0, 0 ) );
j = 0;
}
}
};
btn_2.setFill ( Color.rgb ( 139, 0, 0 ) );
btn_2.addEventFilter ( MouseEvent.MOUSE_CLICKED, eventHandler_2 );
}
//
/////////////////////////////////////////////////////////////////////////
public void button_person_3 ( ) {
btn_3.getPoints ( ).addAll (
new Double [ ] { 20.0, 5.0, 5.0, 40.0, 40.0, 40.0, } );
//Localização - coluna
btn_3.setLayoutX ( 360 );
//Localização - linha
btn_3.setLayoutY ( 180 );
EventHandler < MouseEvent > eventHandler_3 =
new EventHandler < MouseEvent > ( ) {
@Override
public void handle ( MouseEvent e ) {
if ( k == 0 ) {
System.out.println ( "Led
aceso" );
btn_3.setFill ( Color.rgb ( 255,255,0 ) );
k++;
} else {
System.out.println ( "Led
apagado" );
btn_3.setFill ( Color.rgb ( 255, 128, 0 ) );
k = 0;
}
}
};
btn_3.setFill ( Color.rgb ( 255, 128, 0 ) );
btn_3.addEventFilter ( MouseEvent.MOUSE_CLICKED, eventHandler_3 );
}
//
/////////////////////////////////////////////////////////////////////////
@Override
public void start ( Stage stage ) {
// Configurando um título para o stage
stage.setTitle ( "JAVAFX - BOTÕES
PERSONALIZADOSS" );
// Criando uma moldura retangular em canvas
ctx.setStroke ( Color.BLUE );
ctx.setLineWidth ( 10.0 );
ctx.strokeRoundRect ( 5, 5, 590, 300, 5, 5 );
ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
FontPosture.ITALIC, 15 ) );
ctx.setFill ( Color.RED );
ctx.fillText ( "JAVAFX - BOTÕES
PERSONALIZADOS", 190, 40 );
Informe ( );
button_person_1 ( );
button_person_2 ( );
button_person_3 ( );
root.getChildren ( ).addAll ( canvas, btn_1, btn_2, btn_3 );
stage.setScene ( scene );
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.