INTERFACES GRÁFICAS
SWING – PARTE 3
Prof.ª M.ª Elaine Cecília Gatto
MENUS E SUBMENUS
ASPECTOS BÁSICOS
• JMenuBar: um objeto que contém o menu de nível superior do
aplicativo
• Jmenu: um menu é composto por um ou mais JMenuItens. É o menu
padrão.
• JMenuItem: um objeto que preenche os menus
• JCheckBoxMenuItem: um item de menu de caixa de seleção
• JRadioButtonMenuItem: um item de menu de botão de rádio
ASPECTOS BÁSICOS
• Para criar um menu principal para uma aplicação:
• Criar um objeto JMenuBar (container para menus)
• Um JMenu é adicionado a um JMenuBar
• Cada JMenu contem um ou mais itens selecionáveis
• JMenuItem define uma seleção que pode ser feita por um
usuário e é o iten exibido por um JMenu
• JCheckBoxMenuItem e JRadioButtonMenuItem extendem e
JMenuItem: menus padrão ou popup
ASPECTOS BÁSICOS
• Todos os itens de menu são essencialmente botões pois
estendem de AbstractButton
• Criando submenus:
• Criar e preencher um objeto Jmenu
• Depois adiciona-lo a outro objeto Jmenu
ASPECTOS BÁSICOS
• Um evento de ação é gerado quando um item de menu é
selecionado
• Examinando o comando de ação você pode determinar qual
item do menu foi selecionado
• Sistemas de menu tendem a ficar muito grandes, tomar
cuidado ao programa-los
JMENUBAR
• Conjunto mínimo para a construção de menus: JMENUBAR,
JMENU e JMENUITEM
• Container para menus
• Herda de Jcomponent
• Inicialmente a barra estará vazia.
• Deve ser preenchida com menus antes de usá-la
• Cada aplicação tem UMA E SOMENTE UMA barra de menus
JMENUBAR
• Método add(): adiciona um menu à barra de menus:
Jmenu add(Jmenu menu)
• Menu é uma instancia de Jmenu que é adicionada à barra de
menus
• Menus são posicionados da esquerda para a direita na ordem de
adição
JMENUBAR
• Para adicionar um menu em um local especifico usar
Component add (Component menu, int índice)
• Menu é adicionado no ÍNDICE especificado
• 0 é o valor inicial. Um menu com índice 0 fica na extrema
esquerda
JMENUBAR
• Para remover um menu que não deseja mais:
remove (Component menu)
• Ou
remove (int índice)
• Menu é uma referencia ao menu que será removido.
• Índice é o valor do índice do menu que se quer remover
JMENUBAR
• Para obter o numero de itens do menu
getMenuComponentCount()
• Para obter um array dos itens do menu
Component[] getMenuComponentes()
JMENUITEM
• Encapsula um elemento de menu
• Elementos:
• Opção vinculada a alguma ação do programa (salvar ou
fechar)
• Pode fazer um submenu ser exibido
• Todo item de um menu pode ser considerado um tipo
especial de botão
JMENUITEM
• Construtor: cria um item de menu com um nome
especifico:
JMenuItem (String nome)
• Ativar ou desativar um item de menu:
setEnable(boolean enable)
MENU PRINCIPAL
• Definido pela barra de menus
• É o mais usado
• Cromo criar um menu principal:
• Criar um objeto jmenubar
• Construir cada menu que estará na barra
• Incluir itens (jmenuitem)
MENU PRINCIPAL
• Cromo criar um menu principal:
• Adicionar os menus à barra de menus
• A barra de menus deve ser adicionada a um jframe
• Cada item de menu deve ter um ouvinte de ação e um
tratador de eventos
MENU PRINCIPAL
• EXEMPLO:
• MenuDemo (menu estático)
• DayMenuDemo (menu dinâmico)
TECLAS DE ATALHO
• Mnemônicos
• Define uma tecla cuja digitação permite a seleção de um item
em um menu ativo
• Aceleradores
• É uma tecla que permite a seleção de um item de menu sem
ser preciso ativar o menu antes
TECLAS DE ATALHO
• Um mnemônico pode ser especificado quando um objeto for
construído:
JMenuItem(String nome, int mnem)
• Definir um mnemônico:
setMnemonic(int mnem)
TECLAS DE ATALHO
• Int mnem:
• constantes definidas em java.awt.event.KeyEvent
• KeyEvent.VK_A
• KeyEvent.VK_B
• KeyEvent.VK_C
• ETC.
• Mnemônicos não diferenciam maiúsculas de minúsculas
TECLAS DE ATALHO
• Padrão: primeira letra coincidente do item de menu será
sublinhada
• Para sublinhar uma letra diferente: especificar o índice da
letra como argumento em
setDisplayedMnemonicInfdex(int indice)
TECLAS DE ATALHO
• Aceleradores
setAccelerator( KeyStroke ks )
• Ks é a combinação de teclas que é pressionada na seleção
do item de menu
• KeyStroke é uma classe que contém métodos para a
construção de vários tipos de aceleradores por
pressionamento de teclas
TECLAS DE ATALHO
getKeyStroke( int ch, int modificador )
• Ch especifica o caracteres acelerador e é um valor de tipo
KEYEVENT
• Modificador deve ser uma ou mais das seguintes constantes
• InputEvent.ALT_DOWN_MASK,
InputEvent.CTRL_DOWN_MASK,
InputEvent.SHIFT_DOWN_MASK,
InputEvent.ALT_GRAPH_DOWN_MASK,
InputEvent.META_DOWN_MASK
TECLAS DE ATALHO
• Tecla de caracteres: VK_A
• Modificador: INPUTEVENT.CTRL_DOWN_MASK
• RESULTADO: CTRL + A será o atalho
• Exemplo: MenuDemoMnem
TECLAS DE ATALHO
• Tecla de caracteres: VK_A
• Modificador: INPUTEVENT.CTRL_DOWN_MASK
• RESULTADO: CTRL + A será o atalho
• Exemplo: MenuDemoMnem
• Usar ALT + tecla para selecionar o menu principal e CTRL +
tecla para as opções do menu
IMAGENS
• Uma imagem pode ser adicionada em um menu
JMenItem ( Icon imagem )
• Cria um item de menu que exibe a imagem especificada
JMenuItem ( String nome, Icon imagem )
• Cria um item de menu com o nome e a imagem
especificados
IMAGENS
• Um ícone pode ser adicionado a um item de menu, basta
usar setIcon()
• ícone de desativação: é exibido quando o item de menu
estiver inativo, basta usar setDisableIcon()
• Dica de ferramenta: um texto que aparece quando você para
o mouse sobre ele: setToolTipoText (String dica).
Exemplo: jmiSobre.setToolTipText(“Sobre este
programa”);
JCheckBoxMenuitem
• Podem otimizar seu aplicativo
• JCheckBoxMenuitem herda de JMenuItem
• Funciona como uma caixa de seleção autônoma
• Gera eventos de ação e um evento de item quando seu estado
muda
JCheckBoxMenuItem ( String nome )
• Constroi um item de menu de caixa de seleção com o nome
especificado
JCheckBoxMenuItem
• Constroi um item de menu de caixa de seleção com o nome eo
estado de seleção especificado
JCheckBoxMenuItem ( String nome, boolean estado )
• Se estado for TRUE, a caixa estará marcada
JRadioButtonMenuItem
• Funciona como um botão de rádio autônomo
• Gera eventos de item e ação
• Devem ser inseridos em um grupo de botões para exibirem um
comportamento de seleção mutuamente exclusivo
JRadioButtonMenuItem ( String nome )
• Cria um item de menu de botão de rádio associado ao nome
especificado por nome
JRadioButtonMenuItem
• Cria um item de menu de botão de rádio com o nome e o estado
de seleção especificado
JRadioButtonMenuItem ( String nome, boolean estado )
• Se estado for igual a true, inicialmente o botão estará
pressionado.
• Exemplo: MenuDemoReC
JRadioButtonMenuItem
• Cria um item de menu de botão de rádio com o nome e o estado
de seleção especificado
JRadioButtonMenuItem ( String nome, boolean estado )
• Se estado for igual a true, inicialmente o botão estará
pressionado.
• Exemplo: MenuDemoReC
CAIXAS DE DIÁLOGO
INTRODUÇÃO
• Usado em situações em que é necessário vincular dois ou mais
desses controles como uma unidade para tratar operações de
entrada mais sofisticadas.
• É um janela separada que solicita algum tipo de resposta ao
usuário
INTRODUÇÃO
• Contem pelo menos uma MENSAGEM e um BOTÃO
• Fornece uma maneira de organizar os componentes necessários
a situações de entrada complexas
• Fornece ao programa uma maneira de solicitar ao usuário a
entrada que precisa para prosseguir
INTRODUÇÃO
• Exemplos:
• Uma caixa de diálogo para permitir selecionar a fonte, o tamanho
e o estilo do texto.
• Uma caixa de diálogo para pedir o nome de usuário e a senha e
esperar até que os dados sejam inseridos.
• Uma caixa de diálogo que permita configurar uma conexão de
modem.
JOPTIONPANE
• É uma caixa de dialogo simples.
• Interage com o usuário e espera uma resposta.
• Exemplo: deseja sair do programa?
• Quatro tipos básicos:
• Mensagem
• Confirmação
• Entrada
• Opções
JOPTIONPANE
• Mensagem:
• Exibe uma mensagem e espera até o usuário pressionar
o botão ok
• Forma de assegurar que o usuário está ciente de
algumas informações
• Exemplo: informar ao usuário que uma conexão de rede
foi perdida
JOPTIONPANE
• Confirmação:
• Faz uma pergunta ao usuário e espera o usuário
escolher
• Normalmente usada quando uma ação deve ser
confirmada
• Exemplo: sair sem salvar?
JOPTIONPANE
• Entrada:
• Permite que o usuário insira uma string ou selecione um
item de uma lista
• Exemplo: obter um nome do teclado
• OPÇÕES:
• Permite especificar uma lista de opções para o usuário
selecionar
JOPTIONPANE
• JOPTIONPANE não deriva de JDIALOG
• JOPTIONPANE é um container para os componentes que
serão usados pelo diálogo
• JOPTIONPANE usa JDIALOG
• JOPTIONPANE constrói um objeto JDIALOG
automaticamente e se adiciona a esse objeto
JOPTIONPANE
• JOPTIONPANE fornece uma maneira otimizada de criar e
gerenciar caixas de diálogos simples
• CAIXAS MODAIS:
• É uma caixa que demanda uma resposta antes do programa
continuar.
• Não é possível redirecionar o FOCO para outra parte do
aplicativo sem antes fechar esta janela.
• Interrompe o programa até o que o usuário responda
JOPTIONPANE
• MODELESS:
• Caixas de diálogos não modais
• NÃO impede que outras partes do programa sejam
usadas
• O foco pode ser redirecionado para outra janelas
JOPTIONPANE
• JOPTIONPANE dá suporte a duas categorias básicas de
métodos SHOW (mostrar)
• MAIS COMUM: Uma caixa de diálogo que usa JDIALOG
para conter o diálogo
• MENOS COMUM: Usa JINTERNALFRAME para conter o
diálogo
JOPTIONPANE
• Quatro métodos FACTORY para criar caixas de diálogo
padrão baseadas em JDIALOG:
• showConfirmDialog()
• showInputDialog()
• showMessageDialog()
• showOptionDialog()
SHOWMESSAGEDIALOG()
• Caixa de dialogo mais simples que pode se construída
• Exibe uma mensagem E espera o usuário apertar um botão
showMessageDialog(Component pai, Object msg);
• Pai = especifica o componente em relação ao qual a caixa de
diálogo será exibida
SHOWMESSAGEDIALOG()
• Se pai = null: a caixa de diálogo é exibida no centro da tela.
• MSG = mensagem a ser exibida
• Exceção:
• HEADLESSEXCEPTION
• Ocorre se tentar exibir uma caixa de diálogo em um
ambiente não interativo (mouse ou teclado
desconectados)
SHOWMESSAGEDIALOG()
• EXEMPLO: MsgDialogDemo
• Segunda forma de usar showMessageDialog()
showMessageDialog(Component pai, Object msg, String
titulo, int msg)
• titulo = especifica um título para a caixa de diálogo
• Msg = natureza da mensagem conforme tabela a seguir
SHOWMESSAGEDIALOG()
• ERROR_MESSAGE: indica que uma mensagem de erro será exibida.
Ícone de erro.
• INFORMATION_MESSAGE: indica que uma mensagem informativa será
exibida. Mensagem padrão.
• PLAIN_MESSAGE: indica uma mensagem simples. Sem ícone.
• QUESTION_MESSAGE: indica que uma mensagem interrogativa será
exibida.
• WARNING_MESSAGE: indica que uma mensagem de aviso será exibida.
Ícone de aviso
SHOWMESSAGEDIALOG()
• Terceira forma de usar showMessageDialog()
showMessageDialog(Component pai, Object msg, String
titulo, int msg, Icon imagem)
• Você pode especificar a imagem desejada para o ícone.
SHOW CONFIRM DIALOG
• Solicita uma resposta básica SIM/NÃO ao usuário
showConfirmDialog(Component pai, Object msg);
• Pai = especifica o componente em relação ao qual a caixa de
diálogo será exibida. Se NULL então é exibida no centro
• MSG = mensagem
SHOW CONFIRM DIALOG
• Exemplo: ConfirmDialogDemo
• OUTRAS FORMAS
• showConfirmDialog(Component pai, Object msg, String
titulo, int op);
• showConfirmDialog(Component pai, Object msg, String
titulo, int Opc, int iMsg);
• showConfirDialog(Component pai, Object msg, String
titulo, int Opc, int iMsg, Icon icon);
SHOW CONFIRM DIALOG
• As opções são os botões que o usuário pode selecionar e
são definidos pelas constantes:
• OK_CANCEL_OPTION: inclui botões OK e CANCEL
• YES_NO_OPTION: inclui botões YES e NO
• YES_NO_CANCEL_OPTION: inclui botões YES, NO e
CANCEL
Lembre-se de tratar corretamente as ações!
SHOW CONFIRM DIALOG
• iMsg deve ser uma das constantes a seguir
• ERROR_MESSAGE
• INFORMATION_MESSAGE
• PLAIN_MESSAGE
• QUESTION_MESSAGE
• WARNING_MESSAGE
• O ícone pode ser modificado por meio de ICON
SHOW INPUT DIALOG
• O usuário pode inserir uma string
showInputDialog(Object msg);
• Retorna a string digitada pelo usuário em MSG quando se
pressiona OK
• Ao pressionar CANCELAR tudo é descartado
SHOW INPUT DIALOG
• Exemplo
• OUTRAS FORMAS:
• showInputDialog(Object msg, Object valorInicial);
• showInputDialog(Component pai, Object msg);
• showInputDialog(Component pai, Object msg, Object
valorInicial);
SHOW INPUT DIALOG
• OUTRAS FORMAS:
• showInputDialog(Component pai, Object msg, String titulo, int
iMsg);
• showInputDialog(Component pai, Object msg, String titulo, int
iMsg, Icon imagem, Object [ ] vals, Object valorInicial);
SHOW INPUT DIALOG
• valorInicial: valor inicial a ser inserido no campo de texto
• Titulo: especifica o titulo
• iMsg: tipo de caixa de diálogo
• Icon: ícone
• VALS: conjunto de opções
SHOW OPTION DIALOG
• Cria uma caixa de diálogo que contem elementos a serem
especificados, isto é, uma caixa personalizada
showOptionDialog(Component pai, Object msg, String titulo,
int op, int ims, Icon ícone, Object[] opções, Object
valorInicial);
SHOW OPTION DIALOG
• O parâmetro opções somente será usado se OP for NULL
• Opções: DEFAULT_OPTION, OK_CANCEL_OPTION,
YES_NO_OPTION, YES_NO_CANCEL_OPTION
• Opções: contem as opções que serão exibidas na caixa de
diálogo
• Cada string do array passa a ser o nome de um botão que ao ser
pressionado retorna o índice e fecha a janela
SHOW OPTION DIALOG
• Exemplo
• Não há controle sobre o layout, isto é, não sabemos como os
botões aparecerão na caixa de diálogo
• As opções personalizadas sobrepõem as opções padrão
• O formato das caixas de diálogo não mudam muito e bem
definidos, por isso são mais limitadas.
JDIALOG
• Componentes podem ser adicionados a ele
• Gerenciador de layout é atributo a ele
• Um tamanho pode ser especificado
• setVisible() também é usado
• Uma barra de menus pode lhe ser dada
• Herda várias classes
• Caixas modais ou não modais
JDIALOG
Jdialog(Frame pai, String titulo, boolean modal)
• Cria uma caixa de diálogo cujo proprietário é especificado
por pai
• Se modal for TRUE, a caixa será modal
• O titulo da caixa é especificado por titulo
JDIALOG
• Para criar e exibir uma caixa de diálogo criada por JDIALOG
• Criar um objeto JDIALOG
• Especificar o gerenciador de layout
• Especificar o tamanho
• Especificar a forma de fechamento padrão
• Adicionar componentes ao painel de conteúdo na caixa
• Exibir a caixa
JDIALOG
• setVisible(false): remove uma caixa de dialogo. Use este
recurso quando precisar usar a caixa com frequência no
aplicativo. Apenas remove a caixa da tela.
• dispose(): quando for usar poucas vezes. Libera todos os
recursos associados a caixa
• Exemplo:
JDIALOG
• Caixa não modal
Jdialog(Frame pai, String titulo)
• EXEMPLO: JDialogDemoNaoModal
JFILECHOOSER
• É uma caixa de diálogo interna
• Automatiza uma janela de seleção de arquivos
• É consistente e eficiente
JFileChooser();
• Exibe o diretório padrão
JFILECHOOSER
JFileChooser(File dir)
JFileChosser(String dir)
• Exibe o diretório especificado por DIR
• Se DIR = NULL então o diretório padrão será usado
JFILECHOOSER
• Métodos para exibir JFilechooser
• showOpenDialog(Component pai): Open dialog exibe
a caixa de diálogo padrão OPEN
• showSaveDialog(Component pai): exibe a caixa de
dialogo padrão SAVE
• showDialog(Component pai, String nome): especifica
um titulo e um nome de botão personalizado
JFILECHOOSER
• Todos os métodos retornam um inteiro que indica o
resultado do processo de seleção de arquivo
• APPROVE_OPTION: arquivo selecionado
• CANCEL_OPTION: usuário cancelou a ação
• ERROR_OPTION: erro encontrado
JFILECHOOSER
• Se retornar APPROVE_OPTION não significa que o arquivo
exista ou o nome seja válido
• Método que retorna um objeto FILE e representa o arquivo
selecionado:
getSelectedFile()
• Dentre outros métodos aprendidos em arquivos
JFILECHOOSER
• Diretórios são tipos especiais de arquivos
• Exemplo:
• JFileChooser
• FileChooserDemo
• JavaFilefilter
EXERCÍCIOS

Interfaces Gráficas em Java Parte 3

  • 1.
    INTERFACES GRÁFICAS SWING –PARTE 3 Prof.ª M.ª Elaine Cecília Gatto
  • 2.
  • 3.
    ASPECTOS BÁSICOS • JMenuBar:um objeto que contém o menu de nível superior do aplicativo • Jmenu: um menu é composto por um ou mais JMenuItens. É o menu padrão. • JMenuItem: um objeto que preenche os menus • JCheckBoxMenuItem: um item de menu de caixa de seleção • JRadioButtonMenuItem: um item de menu de botão de rádio
  • 4.
    ASPECTOS BÁSICOS • Paracriar um menu principal para uma aplicação: • Criar um objeto JMenuBar (container para menus) • Um JMenu é adicionado a um JMenuBar • Cada JMenu contem um ou mais itens selecionáveis • JMenuItem define uma seleção que pode ser feita por um usuário e é o iten exibido por um JMenu • JCheckBoxMenuItem e JRadioButtonMenuItem extendem e JMenuItem: menus padrão ou popup
  • 5.
    ASPECTOS BÁSICOS • Todosos itens de menu são essencialmente botões pois estendem de AbstractButton • Criando submenus: • Criar e preencher um objeto Jmenu • Depois adiciona-lo a outro objeto Jmenu
  • 6.
    ASPECTOS BÁSICOS • Umevento de ação é gerado quando um item de menu é selecionado • Examinando o comando de ação você pode determinar qual item do menu foi selecionado • Sistemas de menu tendem a ficar muito grandes, tomar cuidado ao programa-los
  • 7.
    JMENUBAR • Conjunto mínimopara a construção de menus: JMENUBAR, JMENU e JMENUITEM • Container para menus • Herda de Jcomponent • Inicialmente a barra estará vazia. • Deve ser preenchida com menus antes de usá-la • Cada aplicação tem UMA E SOMENTE UMA barra de menus
  • 8.
    JMENUBAR • Método add():adiciona um menu à barra de menus: Jmenu add(Jmenu menu) • Menu é uma instancia de Jmenu que é adicionada à barra de menus • Menus são posicionados da esquerda para a direita na ordem de adição
  • 9.
    JMENUBAR • Para adicionarum menu em um local especifico usar Component add (Component menu, int índice) • Menu é adicionado no ÍNDICE especificado • 0 é o valor inicial. Um menu com índice 0 fica na extrema esquerda
  • 10.
    JMENUBAR • Para removerum menu que não deseja mais: remove (Component menu) • Ou remove (int índice) • Menu é uma referencia ao menu que será removido. • Índice é o valor do índice do menu que se quer remover
  • 11.
    JMENUBAR • Para obtero numero de itens do menu getMenuComponentCount() • Para obter um array dos itens do menu Component[] getMenuComponentes()
  • 12.
    JMENUITEM • Encapsula umelemento de menu • Elementos: • Opção vinculada a alguma ação do programa (salvar ou fechar) • Pode fazer um submenu ser exibido • Todo item de um menu pode ser considerado um tipo especial de botão
  • 13.
    JMENUITEM • Construtor: criaum item de menu com um nome especifico: JMenuItem (String nome) • Ativar ou desativar um item de menu: setEnable(boolean enable)
  • 14.
    MENU PRINCIPAL • Definidopela barra de menus • É o mais usado • Cromo criar um menu principal: • Criar um objeto jmenubar • Construir cada menu que estará na barra • Incluir itens (jmenuitem)
  • 15.
    MENU PRINCIPAL • Cromocriar um menu principal: • Adicionar os menus à barra de menus • A barra de menus deve ser adicionada a um jframe • Cada item de menu deve ter um ouvinte de ação e um tratador de eventos
  • 16.
    MENU PRINCIPAL • EXEMPLO: •MenuDemo (menu estático) • DayMenuDemo (menu dinâmico)
  • 17.
    TECLAS DE ATALHO •Mnemônicos • Define uma tecla cuja digitação permite a seleção de um item em um menu ativo • Aceleradores • É uma tecla que permite a seleção de um item de menu sem ser preciso ativar o menu antes
  • 18.
    TECLAS DE ATALHO •Um mnemônico pode ser especificado quando um objeto for construído: JMenuItem(String nome, int mnem) • Definir um mnemônico: setMnemonic(int mnem)
  • 19.
    TECLAS DE ATALHO •Int mnem: • constantes definidas em java.awt.event.KeyEvent • KeyEvent.VK_A • KeyEvent.VK_B • KeyEvent.VK_C • ETC. • Mnemônicos não diferenciam maiúsculas de minúsculas
  • 20.
    TECLAS DE ATALHO •Padrão: primeira letra coincidente do item de menu será sublinhada • Para sublinhar uma letra diferente: especificar o índice da letra como argumento em setDisplayedMnemonicInfdex(int indice)
  • 21.
    TECLAS DE ATALHO •Aceleradores setAccelerator( KeyStroke ks ) • Ks é a combinação de teclas que é pressionada na seleção do item de menu • KeyStroke é uma classe que contém métodos para a construção de vários tipos de aceleradores por pressionamento de teclas
  • 22.
    TECLAS DE ATALHO getKeyStroke(int ch, int modificador ) • Ch especifica o caracteres acelerador e é um valor de tipo KEYEVENT • Modificador deve ser uma ou mais das seguintes constantes • InputEvent.ALT_DOWN_MASK, InputEvent.CTRL_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK, InputEvent.ALT_GRAPH_DOWN_MASK, InputEvent.META_DOWN_MASK
  • 23.
    TECLAS DE ATALHO •Tecla de caracteres: VK_A • Modificador: INPUTEVENT.CTRL_DOWN_MASK • RESULTADO: CTRL + A será o atalho • Exemplo: MenuDemoMnem
  • 24.
    TECLAS DE ATALHO •Tecla de caracteres: VK_A • Modificador: INPUTEVENT.CTRL_DOWN_MASK • RESULTADO: CTRL + A será o atalho • Exemplo: MenuDemoMnem • Usar ALT + tecla para selecionar o menu principal e CTRL + tecla para as opções do menu
  • 25.
    IMAGENS • Uma imagempode ser adicionada em um menu JMenItem ( Icon imagem ) • Cria um item de menu que exibe a imagem especificada JMenuItem ( String nome, Icon imagem ) • Cria um item de menu com o nome e a imagem especificados
  • 26.
    IMAGENS • Um íconepode ser adicionado a um item de menu, basta usar setIcon() • ícone de desativação: é exibido quando o item de menu estiver inativo, basta usar setDisableIcon() • Dica de ferramenta: um texto que aparece quando você para o mouse sobre ele: setToolTipoText (String dica). Exemplo: jmiSobre.setToolTipText(“Sobre este programa”);
  • 27.
    JCheckBoxMenuitem • Podem otimizarseu aplicativo • JCheckBoxMenuitem herda de JMenuItem • Funciona como uma caixa de seleção autônoma • Gera eventos de ação e um evento de item quando seu estado muda JCheckBoxMenuItem ( String nome ) • Constroi um item de menu de caixa de seleção com o nome especificado
  • 28.
    JCheckBoxMenuItem • Constroi umitem de menu de caixa de seleção com o nome eo estado de seleção especificado JCheckBoxMenuItem ( String nome, boolean estado ) • Se estado for TRUE, a caixa estará marcada
  • 29.
    JRadioButtonMenuItem • Funciona comoum botão de rádio autônomo • Gera eventos de item e ação • Devem ser inseridos em um grupo de botões para exibirem um comportamento de seleção mutuamente exclusivo JRadioButtonMenuItem ( String nome ) • Cria um item de menu de botão de rádio associado ao nome especificado por nome
  • 30.
    JRadioButtonMenuItem • Cria umitem de menu de botão de rádio com o nome e o estado de seleção especificado JRadioButtonMenuItem ( String nome, boolean estado ) • Se estado for igual a true, inicialmente o botão estará pressionado. • Exemplo: MenuDemoReC
  • 31.
    JRadioButtonMenuItem • Cria umitem de menu de botão de rádio com o nome e o estado de seleção especificado JRadioButtonMenuItem ( String nome, boolean estado ) • Se estado for igual a true, inicialmente o botão estará pressionado. • Exemplo: MenuDemoReC
  • 32.
  • 33.
    INTRODUÇÃO • Usado emsituações em que é necessário vincular dois ou mais desses controles como uma unidade para tratar operações de entrada mais sofisticadas. • É um janela separada que solicita algum tipo de resposta ao usuário
  • 34.
    INTRODUÇÃO • Contem pelomenos uma MENSAGEM e um BOTÃO • Fornece uma maneira de organizar os componentes necessários a situações de entrada complexas • Fornece ao programa uma maneira de solicitar ao usuário a entrada que precisa para prosseguir
  • 35.
    INTRODUÇÃO • Exemplos: • Umacaixa de diálogo para permitir selecionar a fonte, o tamanho e o estilo do texto. • Uma caixa de diálogo para pedir o nome de usuário e a senha e esperar até que os dados sejam inseridos. • Uma caixa de diálogo que permita configurar uma conexão de modem.
  • 36.
    JOPTIONPANE • É umacaixa de dialogo simples. • Interage com o usuário e espera uma resposta. • Exemplo: deseja sair do programa? • Quatro tipos básicos: • Mensagem • Confirmação • Entrada • Opções
  • 37.
    JOPTIONPANE • Mensagem: • Exibeuma mensagem e espera até o usuário pressionar o botão ok • Forma de assegurar que o usuário está ciente de algumas informações • Exemplo: informar ao usuário que uma conexão de rede foi perdida
  • 38.
    JOPTIONPANE • Confirmação: • Fazuma pergunta ao usuário e espera o usuário escolher • Normalmente usada quando uma ação deve ser confirmada • Exemplo: sair sem salvar?
  • 39.
    JOPTIONPANE • Entrada: • Permiteque o usuário insira uma string ou selecione um item de uma lista • Exemplo: obter um nome do teclado • OPÇÕES: • Permite especificar uma lista de opções para o usuário selecionar
  • 40.
    JOPTIONPANE • JOPTIONPANE nãoderiva de JDIALOG • JOPTIONPANE é um container para os componentes que serão usados pelo diálogo • JOPTIONPANE usa JDIALOG • JOPTIONPANE constrói um objeto JDIALOG automaticamente e se adiciona a esse objeto
  • 41.
    JOPTIONPANE • JOPTIONPANE forneceuma maneira otimizada de criar e gerenciar caixas de diálogos simples • CAIXAS MODAIS: • É uma caixa que demanda uma resposta antes do programa continuar. • Não é possível redirecionar o FOCO para outra parte do aplicativo sem antes fechar esta janela. • Interrompe o programa até o que o usuário responda
  • 42.
    JOPTIONPANE • MODELESS: • Caixasde diálogos não modais • NÃO impede que outras partes do programa sejam usadas • O foco pode ser redirecionado para outra janelas
  • 43.
    JOPTIONPANE • JOPTIONPANE dásuporte a duas categorias básicas de métodos SHOW (mostrar) • MAIS COMUM: Uma caixa de diálogo que usa JDIALOG para conter o diálogo • MENOS COMUM: Usa JINTERNALFRAME para conter o diálogo
  • 44.
    JOPTIONPANE • Quatro métodosFACTORY para criar caixas de diálogo padrão baseadas em JDIALOG: • showConfirmDialog() • showInputDialog() • showMessageDialog() • showOptionDialog()
  • 45.
    SHOWMESSAGEDIALOG() • Caixa dedialogo mais simples que pode se construída • Exibe uma mensagem E espera o usuário apertar um botão showMessageDialog(Component pai, Object msg); • Pai = especifica o componente em relação ao qual a caixa de diálogo será exibida
  • 46.
    SHOWMESSAGEDIALOG() • Se pai= null: a caixa de diálogo é exibida no centro da tela. • MSG = mensagem a ser exibida • Exceção: • HEADLESSEXCEPTION • Ocorre se tentar exibir uma caixa de diálogo em um ambiente não interativo (mouse ou teclado desconectados)
  • 47.
    SHOWMESSAGEDIALOG() • EXEMPLO: MsgDialogDemo •Segunda forma de usar showMessageDialog() showMessageDialog(Component pai, Object msg, String titulo, int msg) • titulo = especifica um título para a caixa de diálogo • Msg = natureza da mensagem conforme tabela a seguir
  • 48.
    SHOWMESSAGEDIALOG() • ERROR_MESSAGE: indicaque uma mensagem de erro será exibida. Ícone de erro. • INFORMATION_MESSAGE: indica que uma mensagem informativa será exibida. Mensagem padrão. • PLAIN_MESSAGE: indica uma mensagem simples. Sem ícone. • QUESTION_MESSAGE: indica que uma mensagem interrogativa será exibida. • WARNING_MESSAGE: indica que uma mensagem de aviso será exibida. Ícone de aviso
  • 49.
    SHOWMESSAGEDIALOG() • Terceira formade usar showMessageDialog() showMessageDialog(Component pai, Object msg, String titulo, int msg, Icon imagem) • Você pode especificar a imagem desejada para o ícone.
  • 50.
    SHOW CONFIRM DIALOG •Solicita uma resposta básica SIM/NÃO ao usuário showConfirmDialog(Component pai, Object msg); • Pai = especifica o componente em relação ao qual a caixa de diálogo será exibida. Se NULL então é exibida no centro • MSG = mensagem
  • 51.
    SHOW CONFIRM DIALOG •Exemplo: ConfirmDialogDemo • OUTRAS FORMAS • showConfirmDialog(Component pai, Object msg, String titulo, int op); • showConfirmDialog(Component pai, Object msg, String titulo, int Opc, int iMsg); • showConfirDialog(Component pai, Object msg, String titulo, int Opc, int iMsg, Icon icon);
  • 52.
    SHOW CONFIRM DIALOG •As opções são os botões que o usuário pode selecionar e são definidos pelas constantes: • OK_CANCEL_OPTION: inclui botões OK e CANCEL • YES_NO_OPTION: inclui botões YES e NO • YES_NO_CANCEL_OPTION: inclui botões YES, NO e CANCEL Lembre-se de tratar corretamente as ações!
  • 53.
    SHOW CONFIRM DIALOG •iMsg deve ser uma das constantes a seguir • ERROR_MESSAGE • INFORMATION_MESSAGE • PLAIN_MESSAGE • QUESTION_MESSAGE • WARNING_MESSAGE • O ícone pode ser modificado por meio de ICON
  • 54.
    SHOW INPUT DIALOG •O usuário pode inserir uma string showInputDialog(Object msg); • Retorna a string digitada pelo usuário em MSG quando se pressiona OK • Ao pressionar CANCELAR tudo é descartado
  • 55.
    SHOW INPUT DIALOG •Exemplo • OUTRAS FORMAS: • showInputDialog(Object msg, Object valorInicial); • showInputDialog(Component pai, Object msg); • showInputDialog(Component pai, Object msg, Object valorInicial);
  • 56.
    SHOW INPUT DIALOG •OUTRAS FORMAS: • showInputDialog(Component pai, Object msg, String titulo, int iMsg); • showInputDialog(Component pai, Object msg, String titulo, int iMsg, Icon imagem, Object [ ] vals, Object valorInicial);
  • 57.
    SHOW INPUT DIALOG •valorInicial: valor inicial a ser inserido no campo de texto • Titulo: especifica o titulo • iMsg: tipo de caixa de diálogo • Icon: ícone • VALS: conjunto de opções
  • 58.
    SHOW OPTION DIALOG •Cria uma caixa de diálogo que contem elementos a serem especificados, isto é, uma caixa personalizada showOptionDialog(Component pai, Object msg, String titulo, int op, int ims, Icon ícone, Object[] opções, Object valorInicial);
  • 59.
    SHOW OPTION DIALOG •O parâmetro opções somente será usado se OP for NULL • Opções: DEFAULT_OPTION, OK_CANCEL_OPTION, YES_NO_OPTION, YES_NO_CANCEL_OPTION • Opções: contem as opções que serão exibidas na caixa de diálogo • Cada string do array passa a ser o nome de um botão que ao ser pressionado retorna o índice e fecha a janela
  • 60.
    SHOW OPTION DIALOG •Exemplo • Não há controle sobre o layout, isto é, não sabemos como os botões aparecerão na caixa de diálogo • As opções personalizadas sobrepõem as opções padrão • O formato das caixas de diálogo não mudam muito e bem definidos, por isso são mais limitadas.
  • 61.
    JDIALOG • Componentes podemser adicionados a ele • Gerenciador de layout é atributo a ele • Um tamanho pode ser especificado • setVisible() também é usado • Uma barra de menus pode lhe ser dada • Herda várias classes • Caixas modais ou não modais
  • 62.
    JDIALOG Jdialog(Frame pai, Stringtitulo, boolean modal) • Cria uma caixa de diálogo cujo proprietário é especificado por pai • Se modal for TRUE, a caixa será modal • O titulo da caixa é especificado por titulo
  • 63.
    JDIALOG • Para criare exibir uma caixa de diálogo criada por JDIALOG • Criar um objeto JDIALOG • Especificar o gerenciador de layout • Especificar o tamanho • Especificar a forma de fechamento padrão • Adicionar componentes ao painel de conteúdo na caixa • Exibir a caixa
  • 64.
    JDIALOG • setVisible(false): removeuma caixa de dialogo. Use este recurso quando precisar usar a caixa com frequência no aplicativo. Apenas remove a caixa da tela. • dispose(): quando for usar poucas vezes. Libera todos os recursos associados a caixa • Exemplo:
  • 65.
    JDIALOG • Caixa nãomodal Jdialog(Frame pai, String titulo) • EXEMPLO: JDialogDemoNaoModal
  • 66.
    JFILECHOOSER • É umacaixa de diálogo interna • Automatiza uma janela de seleção de arquivos • É consistente e eficiente JFileChooser(); • Exibe o diretório padrão
  • 67.
    JFILECHOOSER JFileChooser(File dir) JFileChosser(String dir) •Exibe o diretório especificado por DIR • Se DIR = NULL então o diretório padrão será usado
  • 68.
    JFILECHOOSER • Métodos paraexibir JFilechooser • showOpenDialog(Component pai): Open dialog exibe a caixa de diálogo padrão OPEN • showSaveDialog(Component pai): exibe a caixa de dialogo padrão SAVE • showDialog(Component pai, String nome): especifica um titulo e um nome de botão personalizado
  • 69.
    JFILECHOOSER • Todos osmétodos retornam um inteiro que indica o resultado do processo de seleção de arquivo • APPROVE_OPTION: arquivo selecionado • CANCEL_OPTION: usuário cancelou a ação • ERROR_OPTION: erro encontrado
  • 70.
    JFILECHOOSER • Se retornarAPPROVE_OPTION não significa que o arquivo exista ou o nome seja válido • Método que retorna um objeto FILE e representa o arquivo selecionado: getSelectedFile() • Dentre outros métodos aprendidos em arquivos
  • 71.
    JFILECHOOSER • Diretórios sãotipos especiais de arquivos • Exemplo: • JFileChooser • FileChooserDemo • JavaFilefilter
  • 72.