Já que você aprendeu a criar menus,
itens de menus, colocar ícones em itens
de menus, criar menus personalizados,
abrir outras janelas por um item de menu,
utilizar combinações de teclas para abrir
itens de menu, falta agora muito pouco para
concluirmos o término destes tutoriais que
estamos fazendo em modo prático sobre menus.
Neste exemplo mostro como criar um duplo menu,
mas você pode ir mais além, mostre seu valor,
e suas habilidades, crie quantos menus forem
necessários para que seu programa se mostre
num aspecto profissional.
Veja abaixo imagens do programa em execução:
Veja abaixo o código do programa:
itens de menus, colocar ícones em itens
de menus, criar menus personalizados,
abrir outras janelas por um item de menu,
utilizar combinações de teclas para abrir
itens de menu, falta agora muito pouco para
concluirmos o término destes tutoriais que
estamos fazendo em modo prático sobre menus.
Neste exemplo mostro como criar um duplo menu,
mas você pode ir mais além, mostre seu valor,
e suas habilidades, crie quantos menus forem
necessários para que seu programa se mostre
num aspecto profissional.
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 javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
import javafx.scene.layout.BorderPane;
import javafx.scene.input.KeyCodeCombination;
import javafx.scene.input.KeyCombination;
import javafx.scene.input.KeyCode;
//
/////////////////////////////////////////////////////////////////////////////
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 );
//Barra de menu ( MenuBar ).
MenuBar menubar = new MenuBar ( );
//Menu menu_1
Menu menu_1 = new Menu ( "Arq_1" );
//Menu menu_2
Menu menu_2 = new Menu ( "Arq_2" );
//Itens de menu para menu_1
MenuItem jan_1 = new MenuItem ( "Janela_1" );
MenuItem jan_2 = new MenuItem ( "Janela_2" );
MenuItem exit_1 = new MenuItem ( "Sair" );
//Itens de menu para menu_2
MenuItem jan_3 = new MenuItem ( "Janela_3" );
MenuItem jan_4 = new MenuItem ( "Janela_4" );
MenuItem exit_2 = new MenuItem ( "Sair" );
//
/////////////////////////////////////////////////////////////////////////
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 void Menu ( Stage stage ) {
//Adicionando itens em menu_1
menu_1.getItems ( ).addAll ( jan_1, jan_2, exit_1 );
//Adicionando itens em menu_2
menu_2.getItems ( ).addAll ( jan_3, jan_4, exit_2 );
//Adicionando menu_1 e menu_2 na barra de menu
menubar.getMenus ( ).addAll ( menu_1, menu_2 );
////////////////////////////////////////////////////////////////////////
//Eventos para menu_1
ctx.setFill ( Color.BLUE );
exit_1.setOnAction ( new EventHandler < ActionEvent > ( ) {
@Override
public void handle ( ActionEvent e ) {
stage.close ( );
}
} );
jan_1.setOnAction ( new EventHandler < ActionEvent > ( ) {
@Override
public void handle ( ActionEvent e ) {
// Coluna, linha,
comprimento, altura
ctx.clearRect ( 120, 165, 330, 50 );
ctx.fillText ( "Janela_1 em
menu_1", 130, 185 );
}
} );
jan_2.setOnAction ( new EventHandler < ActionEvent > ( ) {
@Override
public void handle ( ActionEvent e ) {
// Coluna, linha,
comprimento, altura
ctx.clearRect ( 120, 165, 330, 50 );
ctx.fillText ( "Janela_2 em
menu_1", 130, 185 );
}
} );
////////////////////////////////////////////////////////////////////////
//Eventos para menu_2
exit_2.setOnAction ( new EventHandler < ActionEvent > ( ) {
@Override
public void handle ( ActionEvent e ) {
stage.close ( );
}
} );
jan_3.setOnAction ( new EventHandler < ActionEvent > ( ) {
@Override
public void handle ( ActionEvent e ) {
// Coluna, linha,
comprimento, altura
ctx.clearRect ( 120, 165, 330, 50 );
ctx.fillText ( "Janela_3 em
menu_2", 130, 185 );
}
} );
jan_4.setOnAction ( new EventHandler < ActionEvent > ( ) {
@Override
public void handle ( ActionEvent e ) {
// Coluna, linha,
comprimento, altura
ctx.clearRect ( 120, 165, 330, 50 );
ctx.fillText ( "Janela_4 em
menu_2", 130, 185 );
}
} );
//Combinações de teclas para menu_1
exit_1.setAccelerator ( new KeyCodeCombination (
KeyCode.E,
KeyCombination.CONTROL_DOWN ) );
jan_1.setAccelerator ( new KeyCodeCombination (
KeyCode.C,
KeyCombination.CONTROL_DOWN ) );
jan_2.setAccelerator ( new KeyCodeCombination (
KeyCode.D,
KeyCombination.CONTROL_DOWN ) );
////////////////////////////////////////////////////////////////////////
//Combinações de teclas para menu_2
exit_2.setAccelerator ( new KeyCodeCombination (
KeyCode.F,
KeyCombination.CONTROL_DOWN ) );
jan_3.setAccelerator ( new KeyCodeCombination (
KeyCode.G,
KeyCombination.CONTROL_DOWN ) );
jan_4.setAccelerator ( new KeyCodeCombination (
KeyCode.H,
KeyCombination.CONTROL_DOWN ) );
}
//
/////////////////////////////////////////////////////////////////////////
public void start ( Stage stage ) {
stage.setTitle ( "JAVAFX -
CRIANDO DUPLO MENU" );
//Usando fonte em italic
ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
FontPosture.ITALIC, 15 ) );
ctx.setFill ( Color.RED );
ctx.fillText ( "JAVAFX -
CRIANDO DUPLO MENU", 130, 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: cyan;" );
Menu ( stage );
Informe ( ctx );
root.getChildren ( ).add ( canvas );
root.setTop ( menubar );
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.