Prof. Roberto Rosa [email protected] Aula 6. Vamos criar um projeto contendo um Menu Principal...

35
LINGUAGEM DE PROGRAMAÇÃO VISUAL II Prof. Roberto Rosa [email protected] Aula 6

Transcript of Prof. Roberto Rosa [email protected] Aula 6. Vamos criar um projeto contendo um Menu Principal...

Page 1: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

LINGUAGEM DE PROGRAMAÇÃO VISUAL

II

Prof. Roberto [email protected]

Aula 6

Page 2: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Menu Principal com JFrame e JInternalFrame

Vamos criar um projeto contendo um Menu Principal que

chamará todas as outras janelas do nosso Sistema. O Menu

principal será criado com o componente JFrame, já que

esse contém o método "main()" que chamará todas as

outras janelas do nosso sistema.

As outras janelas por sua vez não precisam ter método

main(), devido a esse fato utilizaremos um formulário sem

este método, no caso o JInternalFrame.

Page 3: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Menu Principal com JFrame e JInternalFrame

Além do JFrame/JInternalFrame utilizaremos outros

componentes que seguem abaixo na lista:

JMenu

JMenuBar

JMenuItem

JSeparator

JCheckBoxMenuItem

JRadioButtonMenuItem

JDesktopPane

Page 4: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

1º passo:

Agora vamos colocar os componentes de Menu. Para isso

acesse a "Paleta" no canto superior direito do Netbeans. Na

paleta clique na categoria "Menus Swing". Em Menus Swing

escolha uma "Barra de Menu"(JMenuBar1) e arraste até o

JFrame, conforme figura a seguir:

Onde encontramos os componentes

Page 5: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Menu Swing

Page 6: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Menu Swing

Page 7: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

JMenuBar

Por padrão o JmenuBar1 já vem com dois menus (File e

Edit). Se você clicar em cima dos Menus verá que o nome

deles são respectivamente: JMenu1,JMenu2

Só a barra de menu (JmenuBar) com os 2 menus(JMenu)

não fica legal. Para que um menu fique funcional,

necessitamos inserir os Itens de Menu.

Page 8: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Itens de Menu

No Swing temos 3 tipos de Itens de Menu, são eles:

JMenuItem

JCheckBoxMenuItem

JRadioButtonMenuItem

Page 9: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Itens de Menu

A figura a seguir mostra os tipos de menu:

Tipos de Menu

Page 10: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Itens de Menu

Agora, vamos inserir 4 itens de menu para você entender

como funciona. Cada item de menu inserindo dentro de um

JMenu é uma nova opção, podendo conter quantos

JMenuItem nós desejarmos/precisarmos. A figura a seguir

mostrar como está ficando o nosso menu:

Page 11: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Itens de Menu

Menu

Page 12: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Itens de Menu

Linha Separadora

Em alguns casos você precisará separar os itens de menu

em categorias. Para fazer isso você pode utilizar o

componente JSeparator. Esse componente simplesmente

cria uma linha que separa o menu conforme desejado.

Page 13: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Menu + Separador

Menu com JSeparator

Page 14: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Modificando o nome dos componentes

Agora vamos modificar o nome dos componentes de menu.

Como é bastante componente eu utilizo a seguinte

nomenclatura de nomes para cada um dos menus e itens

de menu:

JmenuBar – jmb

Jmenu – jm

JmenuItem – jmi

JCheckBoxMenuItem - jcbmi

JRadioButtonMenuItem - jrbmi

Page 15: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

JDesktopPane

O JDesktopPane é um Painel da Área de Trabalho(como o

próprio nome já diz). Ele serve para que as janelas sejam

abertas apenas dentro da janela principal do sistema, não

permitindo que as janelas saiam para fora da janela

principal. Isso é o chamado menu MDI.

Page 16: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

JDesktopPane

Bom, agora que já sabemos para o que ele serve, o

próximo passo é inserir um JDesktopPane, ou seja, um

componente que será uma Área de Trabalho onde serão

abertas todas as outras janelas (JInternalFrame) do nosso

sistema.

Page 17: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

JDesktopPane

O JDesktopPane encontra-se na paleta → categoria

Contêineres → painel de Área de Trabalho conforme ilustra

a figura:

Page 18: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

JDesktopPane

Onde encontrar JDesktopPane

Page 19: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

JDesktopPane

Obs.: Se o Netbeans estiver sendo executado no Sistema Operacional

Windows, a cor de fundo padrão do Painel da Área de Trabalho pode

variar. Geralmente as cores utilizadas são o Azul ou preto.

Após inserir o JDesktopPane mude o nome da variável para algo do tipo:

jAreaTrabalho

jdpAreaTrabalho

O componente que servirá como área de trabalho deverá ser

expandido em toda a janela principal ou em parte dela deixando

algumas bordas, conforme a figura:

Page 20: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

JDesktopPane

Menu com JDesktopPane

Page 21: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Vinculando uma janela no Menu

Bom, agora vamos abrir a nossa primeira janela. Ao contrário

do que vinhamos utilizando agora nós vamos utilizar outro

componente do Swing. O nome da janela não será "Form

JFrame" e sim "Form JInternalFrame". Mas porque eu utilizo um

Form diferente do JFrame? A explicação é simples: O Form

JFrame vem com o método main(), enquanto o Form

InternalFrame não vem com o método main(). Se colocarmos 2

Form JFrame no mesmo projeto ao executar o java não saberá

qual das 2 janelas devem ser "rodadas"(executadas). A não ser

que você indique nas propriedades do projeto ou diretamente

no Class path.

Page 22: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Vinculando uma janela no Menu

Alguns desenvolvedores ao invés de utilizar JInternalFrame

acabam utilizando o Form JPanel. Ao meu ver, indifere qual

Form será utilizado; claro, desde que seja um desses 2.

Para abrir uma janela a partir do menu siga as instruções a

seguir:

Vamos primeiro criar a janela que será aberta pelo menu.

Para isso clique com o botão direito do mouse no pacote

"visao" e escolha a opção: Novo → outros. Será aberta uma

caixa de diálogo conforme a figura:

Page 23: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Vinculando uma janela no Menu

Page 24: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Vinculando uma janela no Menu

Obs.: Nessa caixa de diálogo, você deve escolher "Forms

GUI Swing" em seguida "Formulário JInternalFrame",

conforme figura:

Criando JInternalFrame

Page 25: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Vinculando uma janela no Menu

Como é apenas uma janela teste, vou utilizar o seguinte nome: GUITeste.

A Figura a seguir mostra onde ficará a "GuiTeste" recém-criada.

GUITeste recém-criada

Page 26: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Voltando na GUIMenu

Agora volte até a Classe MenuPrincipal. Clique com o botão

direito do mouse no "Item de Menu" que deseja utilizar

para abrir a janela" GuiTeste". A Figura mostra que foi

utilizado o primeiro "Item de Menu" para inserir o Evento

de ActionPerformed.

Page 27: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Criando Evento...

Inserindo evento no item de menu

Page 28: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Criando Evento...

Ao escolher o evento, automaticamente ele nos levará para

o código criando um método, conforme Figura:

Código do evento ActionPerformed criado

Page 29: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Criando Evento KeyPressed...

Clique em "Projeto" novamente. Agora vamos adicionar o

Evento: key → key pressed. Esse evento é responsável pela

abertura da janela se alguma tecla for pressionada. Vamos

restringir para que somente quando o "Enter" for

pressionado a janela abra.

Page 30: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Criando Evento KeyPressed...

Page 31: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Criando Evento KeyPressed...

Ao clicar em "KeyPressed" o NetBeans redicionará para o

código criando outro método abaixo do método

jmiGuiTesteActionPerformed, conforme figura:

Page 32: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Criando Evento KeyPressed...

Código do evento KeyPressed criado

Page 33: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Abrindo a Janela...

Método abrirGUITeste sendo chamado nos evento

Page 34: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Abrindo a Janela...

Obs.: O if() dentro do método KeyPressed serve para testar

se o código da tecla que foi pressionada (getKeyCode()) é

igual ( == ) a tecla Enter (KeyEvent.VK_ENTER).

O resultado final pode ser visualizado na figura que segue.

Quando clicamos no menu Cadastrar -> opção Teste ele

instância e abre a GuiTeste dentro da Área de Trabalho

(JDesktopPane) que criamos.

Page 35: Prof. Roberto Rosa robertorsci@gmail.com Aula 6.  Vamos criar um projeto contendo um Menu Principal que chamará todas as outras janelas do nosso Sistema.

Executando...

GUIMenu abrindo GUITeste