Defini três itens de menu para o menu "Arq",
que são: "Sobre, Sair e Lâmpada".
O item de menu Lâmpada logo abaixo
do separador foi cuidadosamente preparado
para operar como um submenu de dois itens
para que um dos dois possa ser escolhido
pelo usuário.
Para a criação dos itens de menus "Acesa e Apagada",
se fez necessário o uso da classe RadioMenuItem,
isto é utilizado para que seja possível escolher
alternadamente um dos dois itens do submenu.
Ao clicar no item de menu Acesa do submenu
Lâmpadas, o método Image_View_1 ( );
é invocado mostrando a imagem de uma
lâmpada acesa.
E Ao clicar no item de menu Apagada do submenu
Lâmpadas, o método Image_View_2 ( );
é invocado mostrando uma imagem da mesma
lâmpada porém apagada.
Veja abaixo imagens do programa em execução:
Veja abaixo um vídeo com o programa funcionando:
Veja abaixo o código do programa:
que são: "Sobre, Sair e Lâmpada".
O item de menu Lâmpada logo abaixo
do separador foi cuidadosamente preparado
para operar como um submenu de dois itens
para que um dos dois possa ser escolhido
pelo usuário.
Para a criação dos itens de menus "Acesa e Apagada",
se fez necessário o uso da classe RadioMenuItem,
isto é utilizado para que seja possível escolher
alternadamente um dos dois itens do submenu.
Ao clicar no item de menu Acesa do submenu
Lâmpadas, o método Image_View_1 ( );
é invocado mostrando a imagem de uma
lâmpada acesa.
E Ao clicar no item de menu Apagada do submenu
Lâmpadas, o método Image_View_2 ( );
é invocado mostrando uma imagem da mesma
lâmpada porém apagada.
Veja abaixo imagens 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.application.Platform;
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.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
import javafx.scene.control.RadioMenuItem;
import javafx.scene.control.SeparatorMenuItem;
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;
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 ( );
MenuBar menuBar = new MenuBar ( );
Menu arq = new Menu ( "Arq" );
MenuItem inf = new RadioMenuItem ( "Sobre" );
MenuItem sair = new RadioMenuItem ( "Sair" );
RadioMenuItem acesa = new RadioMenuItem ( "Acesa" );
RadioMenuItem apagada = new RadioMenuItem ( "Apagada" );
Menu lampadas = new Menu ( "Lâmpada" );
//
/////////////////////////////////////////////////////////////////////////
public void Informe ( GraphicsContext ctx ) {
ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 13 ) );
ctx.setFill ( Color.RED );
ctx.fillText ( "Por: ", 180, 235 );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "Samuel
Lima", 210, 235 );
ctx.setFill ( Color.BLACK );
ctx.fillText ( "sa_sp10@hotmail.com", 180, 250 );
ctx.setFill ( Color.RED );
ctx.fillText ( " MUITO
OBRIGADO", 200, 275 );
ctx.setFill ( Color.BLACK );
//Usando fonte em italic
ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
FontPosture.ITALIC, 26 ) );
}
//
/////////////////////////////////////////////////////////////////////////
public int Image_View_1 ( ) throws FileNotFoundException {
Image image_1 = new Image (
new FileInputStream (
"H:\\eclipse -
luna java\\PROJETOS\\PROJETO\\"
+ "src\\Foto\\Lamp_1.png" ) );
imageView_1 = new ImageView ( image_1 );
// Coluna
imageView_1.setX ( 240 );
// Linha
imageView_1.setY ( 90 );
// Largura
imageView_1.setFitHeight ( 640 );
// Altura
imageView_1.setFitWidth ( 150 );
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\\Lamp_2.png" ) );
imageView_2 = new ImageView ( image_2 );
// Coluna
imageView_2.setX ( 240 );
// Linha
imageView_2.setY ( 90 );
// Largura
imageView_2.setFitHeight ( 640 );
// Altura
imageView_2.setFitWidth ( 150 );
imageView_2.setPreserveRatio ( true );
root.getChildren ( ).addAll ( imageView_2 );
return 0;
}
//
/////////////////////////////////////////////////////////////////////////
public void Menu ( Stage stage ) {
menuBar.prefWidthProperty ( ).bind ( stage.widthProperty ( ) );
lampadas.getItems ( ).addAll ( acesa, apagada );
sair.setOnAction ( actionEvent -> Platform.exit ( ) );
inf.setOnAction ( actionEvent -> Informe ( ctx ) );
acesa.setOnAction ( new EventHandler < ActionEvent > ( ) {
@Override
public void handle ( ActionEvent e ) {
try {
acesa.setSelected ( false );
Image_View_1 ( );
} catch ( FileNotFoundException e1 ) {
// TODO Auto-generated catch
block
e1.printStackTrace();
}
}
} );
apagada.setOnAction ( new EventHandler < ActionEvent > ( ) {
@Override
public void handle ( ActionEvent e ) {
try {
apagada.setSelected ( false );
Image_View_2 ( );
} catch ( FileNotFoundException e1 ) {
// TODO Auto-generated catch
block
e1.printStackTrace();
}
}
} );
arq.getItems ( ).addAll ( inf, sair,
new SeparatorMenuItem (
) );
arq.getItems ( ).add ( lampadas );
menuBar.getMenus ( ).addAll ( arq );
}
//
/////////////////////////////////////////////////////////////////////////
@Override
public void start ( Stage stage ) throws FileNotFoundException {
stage.setTitle ( "JAVAFX -
CRIANDO SUBMENU" );
//Usando fonte em italic
ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
FontPosture.ITALIC, 15 ) );
ctx.setFill ( Color.RED );
ctx.fillText ( "JAVAFX -
CRIANDO SUBMENU", 160, 80 );
// 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: red;" );
Menu ( stage );
root.getChildren ( ).add ( canvas );
root.setTop ( menuBar );
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.