Nos tempos em que estávamos aprendendo
eletrônica básica, um dos primeiros
circuitos que aprendemos a montar foi
um multivibrador astável.
Ele utilizava dois transistores e alguns componentes
passivos tais como resistores, capacitores e dois
leds para as piscadas alternadas.
A frequência de oscilação era determinada basicamente
pelos capacitores com limites de correntes feito pelos resistores.
Que saudades destes tempos meus amigos,
nosso pequeno laboratório, nossos colegas
do curso, alguns se deram muito bem,
e hoje nem falam mais comigo.
O que temos por aqui é um código em java
com interface criada em javaFX que simula
um multivibrador astável indicado aos amantes de java.
Veja abaixo uma imagem do programa em execução:
Veja abaixo um vídeo com o programa funcionando:
Veja abaixo o código do programa:
eletrônica básica, um dos primeiros
circuitos que aprendemos a montar foi
um multivibrador astável.
Ele utilizava dois transistores e alguns componentes
passivos tais como resistores, capacitores e dois
leds para as piscadas alternadas.
A frequência de oscilação era determinada basicamente
pelos capacitores com limites de correntes feito pelos resistores.
Que saudades destes tempos meus amigos,
nosso pequeno laboratório, nossos colegas
do curso, alguns se deram muito bem,
e hoje nem falam mais comigo.
O que temos por aqui é um código em java
com interface criada em javaFX que simula
um multivibrador astável indicado aos amantes de java.
Veja abaixo uma imagem do programa em execução:
Veja abaixo um vídeo com o programa funcionando:
Veja abaixo o código do programa:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.BorderPane;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.stage.Stage;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.util.Duration;
import javafx.animation.*;
public class PROJETO extends Application {
public Canvas canvas = new Canvas ( 500, 300 );
public GraphicsContext ctx = canvas.getGraphicsContext2D
( );
BorderPane root = new BorderPane ( );
Scene scene = new Scene ( root, 500, 300, Color.WHITE );
ImageView imageView_1 = new ImageView ( );
ImageView imageView_2 = new ImageView ( );
private static Timeline videoTick;
static int k = 0;
//
/////////////////////////////////////////////////////////////////////////
public void Informe ( ) {
ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 13 ) );
ctx.setFill ( Color.RED );
ctx.fillText ( "Por: ", 200, 235 );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "Samuel
Lima", 230, 235 );
ctx.setFill ( Color.BLACK );
ctx.fillText ( "sa_sp10@hotmail.com", 200, 250 );
ctx.setFill ( Color.RED );
ctx.fillText ( " MUITO
OBRIGADO", 210, 275 );
ctx.setFill ( Color.BLACK );
}
//
/////////////////////////////////////////////////////////////////////////
public int Image_View_1 ( ) throws FileNotFoundException {
Image image_1 = new Image ( new FileInputStream (
"H:\\eclipse -
luna java\\PROJETOS\\PROJETO\\"
+ "src\\Foto\\red_button.png" ) );
imageView_1 = new ImageView ( image_1 );
// Coluna
imageView_1.setX ( 130 );
// Linha
imageView_1.setY ( 110 );
// Largura
imageView_1.setFitHeight ( 100 );
// Altura
imageView_1.setFitWidth ( 100 );
imageView_1.setPreserveRatio ( true );
root.getChildren ( ).addAll ( imageView_1 );
return 0;
}
//
/////////////////////////////////////////////////////////////////////////
public int Image_View_2 ( ) throws FileNotFoundException {
Image image_2 = new Image ( new FileInputStream (
"H:\\eclipse -
luna java\\PROJETOS\\PROJETO\\"
+ "src\\Foto\\black_button.png" ) );
imageView_2 = new ImageView ( image_2 );
// Coluna
imageView_2.setX ( 280 );
// Linha
imageView_2.setY ( 110 );
// Largura
imageView_2.setFitHeight ( 100 );
// Altura
imageView_2.setFitWidth ( 100 );
imageView_2.setPreserveRatio ( true );
root.getChildren ( ).addAll ( imageView_2 );
return 0;
}
//
/////////////////////////////////////////////////////////////////////////
public int Image_View_3 ( ) throws FileNotFoundException {
Image image_1 = new Image ( new FileInputStream (
"H:\\eclipse -
luna java\\PROJETOS\\PROJETO\\"
+ "src\\Foto\\black_button.png" ) );
imageView_1 = new ImageView ( image_1 );
// Coluna
imageView_1.setX ( 130 );
// Linha
imageView_1.setY ( 110 );
// Largura
imageView_1.setFitHeight ( 100 );
// Altura
imageView_1.setFitWidth ( 100 );
imageView_1.setPreserveRatio ( true );
root.getChildren ( ).addAll ( imageView_1 );
return 0;
}
//
/////////////////////////////////////////////////////////////////////////
public int Image_View_4 ( ) throws FileNotFoundException {
Image image_2 = new Image ( new FileInputStream (
"H:\\eclipse -
luna java\\PROJETOS\\PROJETO\\"
+ "src\\Foto\\red_button.png" ) );
imageView_2 = new ImageView ( image_2 );
// Coluna
imageView_2.setX ( 280 );
// Linha
imageView_2.setY ( 110 );
// Largura
imageView_2.setFitHeight ( 100 );
// Altura
imageView_2.setFitWidth ( 100 );
imageView_2.setPreserveRatio ( true );
root.getChildren ( ).addAll ( imageView_2 );
return 0;
}
//
/////////////////////////////////////////////////////////////////////////
// Abaixo a função usada como clock criada por
mim
public int Sleep ( int x ) {
while ( k <= 3 ) {
Duration duration = Duration.millis ( x );
videoTick = new Timeline ( new KeyFrame ( duration,
new EventHandler < ActionEvent > ( ) {
public void handle ( ActionEvent actionEvent ) {
k++;
System.out.println ( k );
if ( k == 1 ) {
try {
Image_View_1 (
);
Image_View_2 (
);
} catch ( FileNotFoundException e ) {
// TODO Auto-generated catch
block
e.printStackTrace ( );
}
}
if ( k == 2 ) {
try {
Image_View_2 (
);
} catch ( FileNotFoundException e ) {
// TODO Auto-generated catch
block
e.printStackTrace ( );
}
}
if ( k == 3 ) {
try {
Image_View_3 (
);
Image_View_4 (
);
//
imageView_1.setVisible ( true );
} catch ( FileNotFoundException e ) {
// TODO Auto-generated catch
block
e.printStackTrace ( );
}
}
if ( k == 4 ) {
try {
Image_View_4 (
);
} catch ( FileNotFoundException e ) {
// TODO Auto-generated catch
block
e.printStackTrace ( );
}
k = 0;
}
}
} ) );
break;
}
videoTick.setCycleCount ( Animation.INDEFINITE );
videoTick.playFromStart ( );
return k;
}
//
/////////////////////////////////////////////////////////////////////////
@Override
public void start ( Stage stage ) throws FileNotFoundException {
stage.setTitle ( "JAVAFX -
PISCA-PISCA ALTERNADO" );
// Usando fonte em italic
ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
FontPosture.ITALIC, 15 ) );
ctx.setFill ( Color.RED );
ctx.fillText ( "JAVAFX -
PISCA-PISCA ALTERNADO", 130, 40 );
// Criando uma moldura na janela
root.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;" );
Informe ( );
// Conta 1/2 segundo por pulso
k = Sleep ( 500 );
root.getChildren ( ).add ( canvas );
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.