·
Engenharia de Software ·
Banco de Dados
Send your question to AI and receive an answer instantly
Recommended for you
22
Java Swing JComboBox e JCheckBox: Guia Pratico para Interfaces Graficas
Banco de Dados
UNIAMÉRICA
22
Java Swing Menu - Tutorial e Pratica com JMenu JMenuBar e JMenuItem
Banco de Dados
UNIAMÉRICA
1
Modelagem de Dados para Sistema de Aluguel de Carros - Diagrama Entidade-Relacionamento
Banco de Dados
ÁREA1 WYDEN
6
Auditoria de Cadastro de Produtos em ERP - Criação de Estruturas de Banco de Dados
Banco de Dados
ÁREA1 WYDEN
6
Estudo de Caso - Gerenciamento de Estoque de Livraria com SQL
Banco de Dados
DESCOMPLICA
2
Atividade Avaliativa - Sistemas de Banco de Dados e Gerenciamento de Informações
Banco de Dados
UNICESUMAR
1
Release 02 Sistema de Gerenciamento de Estacionamento - Implementacao Banco de Dados Relacional e JDBC
Banco de Dados
PUC
12
Manual de Instalação e Utilização MongoDB Community Server e Compass - Banco de Dados NoSQL
Banco de Dados
UNIA
1
Integração Front-End e Back-End com Spring Boot API RestFul - Tutorial Completo
Banco de Dados
PUC
176
Banco de Dados - Graduação EaD
Banco de Dados
UNICESUMAR
Preview text
JAVA SWING Profs Edrian da Silva Joice Wolfrann Willian Bogler Definição Swing é um conjunto de bibliotecas do Java para a construção de interfaces gráficas de usuário GUIs É parte da biblioteca padrão do Java e oferece um conjunto de componentes mais sofisticados do que a antiga biblioteca Abstract Window Toolkit AWT Swing permite a criação de aplicativos com interfaces gráficas ricas e independentes de plataforma 04062024 Principais características do Swing Independência de Plataforma Componentes Java puro com aparência e comportamento consistentes em qualquer sistema operacional MVC Segue o padrão MVC separando a lógica de negócios da interface facilitando a manutenção Personalização Permite adaptar a aparência dos componentes com UI Managers e Look and Feel Componentes Ricos Oferece muitos componentes prontos como botões tabelas e menus Gerenciamento de Layout Vários gerenciadores de layout para organizar componentes de forma flexível 04062024 JComponent JCheckBox JRadioButton JToggleButton JButton JMenuItem JMenu AbstractButton JTextComponent JPasswordField JTextField JTextPane JEditorPane Componentes de Texto JToolTip JSlider JOptionPane JScrollPane JMenuBar JList JScrollBar JInternalFrame JSeparator JToolbar JComboBox JPanel JTable JprogressBar JSplitPane JViewPoint JFileChooser JDesktopPane JLabel JPopupMenu JTree JRootPane JTabbedPane JColorChooser JLayeredPane Principais Componentes Botões Principais Componentes JFrame É um container formulário para outros componentes GUI JPanel Contêiner para organizar outros componentes JButton Área que aciona um evento quando o usuário clica JLabel Área em que podem ser exibidos texto nãoeditável ou ícones JTextField Área em que o usuário insere dados pelo tecladoentrada do usuário JTextArea Área de texto multilinha JCheckBox Possui dois estados selecionado ou nãoselecionado JComboBox Lista de itens que o usuário pode fazer uma seleção clicando em um item na lista ou digitando na caixa JRadioButton Botão de opção JList Área em que uma lista é exibida possibilitando a seleção clicando em qualquer item da lista JScrollPane Contêiner para rolar outros componentes JMenuBar JMenu JMenuItem Componentes de menu 04062024 JLabel JTextField JButton JCheckBox JList JComboBox JFrame JFrame JFrame é uma classe usada para criar janelas em aplicações Java onde podemos adicionar botões menus caixas de texto etc Precisamos importar a classe do pacote Swing import javaxswingJFrame Cada JFrame criado é uma janela diferente Podemos criar objetos da classe JFrame com um título passado como argumento para o construtor Além disso podemos definir ações para o botão de fechar close adicionar painéis definir o tamanho da janela e tornála visível ou não Para exibir um JFrame usamos o método setVisibletrue que torna a janela visível 04062024 JFrame Para mais informações httpsdocsoraclecomjavase6docsapijavaxswingJFramehtml 04062024 Prática 01 04062024 package view import javaxswingJFrame public class Jframe01 public static void mainString args JFrame janela new JFrame1 aula com Swing Define o comportamento ao fechar a janela janelasetDefaultCloseOperationJFrameEXITONCLOSE Tamanho da janela janelasetSize300 200 janelasetVisibletrue Jpanel Um container genérico e visual A principal tarefa do JPanel é organizar os componentes vários layouts podem ser definidos no JPanel que proporcionam melhor organização dos componentes porém não possui barra de título O construtor padrão cria um objeto JPanel com FlowLayout porém diferentes layouts podem ser especificados durante a construção ou através do método setLayout 04062024 Jpanel Construtores do JPanel JPanel cria um novo painel com um layout de fluxo JPanelLayoutManager l cria um novo JPanel com layoutManager especificado JPanelboolean isDoubleBuffered cria um novo JPanel com uma estratégia de buffer especificada JPanelLayoutManager l boolean isDoubleBuffered cria um novo JPanel com layoutManager especificado e uma estratégia de buffer especificada 04062024 Jpanel Funções comumente usadas do JPanel addComponent c Adiciona um componente a um contêiner especificado setLayoutLayoutManager l define o layout do contêiner para o gerenciador de layout especificado updateUI redefine a propriedade da UI com um valor da aparência atual setUIPanelUI ui define a aparência de um objeto que renderiza este componente getUI retorna o objeto de aparência que renderiza este componente paramString retorna uma representação em string deste JPanel getUIClassID retorna o nome da classe Look and Feel que renderiza este componente getAccessibleContext obtém o AccessibleContext associado a este JPanel 04062024 Prática 02 public class JPanel01 public static void mainString args JFrame frame new JFrameExemplo de JPanel framesetSize300 200 JPanel panel new JPanel panelsetLayoutnew FlowLayout JLabel label new JLabelOlá Bem vindos ao Swing paneladdlabel frameaddpanel add painel framesetDefaultCloseOperationJFrameEXITONCLOSE framesetVisibletrue 04062024 Métodos public void addComponent c add componente em outro componente public void setSizeint widthint height define o tamanho do componente public void setLayoutLayoutManager m define o gerenciador de layout do componente public void setVisibleboolean b define a visibilidade do componente Por padrão é falso 04062024 Gerenciadores de Layout Os gerenciadores de layout em Java são usados para organizar componentes GUI dentro de um container facilitando a apresentação visual Eles processam automaticamente muitos detalhes do posicionamento dos componentes proporcionando uma maneira eficiente de dispor elementos gráficos nos containers 04062024 Automação do Layout Eles automatizam o posicionamento e dimensionamento dos componentes gráficos nos containers Implementação de Interface Implementam a interface LayoutManager ou a subinterface LayoutManager2 Gerenciador Padrão Cada container JPanel ou JFrame possui um gerenciador de layout padrão associado Gerenciadores de Layout FlowLayout Organiza os componentes em uma linha alinhandoos à esquerda centro ou direita BorderLayout Divide o container em cinco regiões norte sul leste oeste e centro GridLayout Organiza os componentes em uma grade de células de tamanhos iguais BoxLayout Alinha os componentes em uma única linha ou coluna GridBagLayout Oferece um controle flexível e complexo sobre o layout permitindo especificar a posição e o tamanho de cada componente 04062024 Tipos de gerenciadores de layout BorderLayout Divide o container em cinco regiões norte sul leste oeste e centro 04062024 public static void mainString args JFrame frame new JFrameExemplo usando o BorderLayout framesetDefaultCloseOperationJFrameEXITONCLOSE framesetSize400 300 framesetLayoutnew BorderLayout frameaddnew JButtonNorte BorderLayoutNORTH frameaddnew JButtonSUL BorderLayoutSOUTH frameaddnew JButtonLeste BorderLayoutEAST frameaddnew JButtonOeste BorderLayoutWEST frameaddnew JButtonCentro BorderLayoutCENTER framesetVisibletrue Tipos de gerenciadores de layout FlowLayout Organiza os componentes em uma linha alinhandoos à esquerda centro ou direita 04062024 public class FlowLayout01 public static void mainString args JFrame frame new JFrameExemplo de FlowLayout framesetDefaultCloseOperationJFrameEXITONCLOSE Painel com FlowLayout JPanel panel new JPanel panelsetLayoutnew FlowLayout Add botões ao painel for int i 1 i 5 i JButton button new JButtonBotão i paneladdbutton framegetContentPaneaddpanel add o painel ao frame framesetSize300 150 framesetVisibletrue Tipos de gerenciadores de layout GridLayout layout de contêiner em Java que organiza os componentes em uma grade retangular de células 04062024 public class GridLayout01 public static void mainString args JFrame frame new JFrameExemplo de GridLayout framesetDefaultCloseOperationJFrameEXITONCLOSE Criando um JPanel com GridLayout JPanel panel new JPanelnew GridLayout3 3 Grid de 3 linhas e 3 colunas add botões ao JPanel for int i 1 i 9 i JButton button new JButtonBotão i paneladdbutton frameaddpanel JPanel ao JFrame framepack define o tamanho da tela com base do conteúdo framesetVisibletrue JOptionPane É uma classe que possibilita a criação de uma caixa de dialogo padrão que ou solicita um valor para o usuário ou retorna uma informação Para utilizarmos a classe JOptionPane temos sempre que importar o pacote javaxswingJOptionPane Usamos então está linha de comando import javaxswingJOptionPane Sempre antes no inicio do código da classe Métodos Método Descrição showConfirmDialog Solicita uma confirmação comoYES NO CANCEL showInputDialog Solicita algum valor showMessageDialog Informa ao usuário sobre algo showOptionDialog Unificação dos tres acima Parametros Parametro Descrição parentComponent Define a caixa de diálogo onde irá aparecer todo o conteúdo Há duas maneiras de definir a caixa de diálogo a primeira você mesmo cria utilizando os conceitos da classe JFrame A segunda você define esse parametro como null e o java irá gerar uma caixa de diálogo padrão Message É a messagem que o usuário deve ler Esta mensagem pode ser uma simples String ou um conjunto de objetos messageType Define o estilo da mensagem O gerente de aparencia pode expor a caixa de dialogo de formas diferentesdependendo deste valor pode fornecer um icone padrãoExemplos ERRORMESSAGE INFORMATIONMESSAGE WARNINGMESSAGE QUESTIONMESSAGE PLAINMESSAGE optionType Define o conjunto de botões que irá aparecer na parte inferior da caixa de diálogo Exemplos DEFAULTOPTION YESNOOPTION YESNOCANCELOPTION OKCANCELOPTION Prática 03 04062024 import javaxswingJOptionPane public class Jframe01 public static void mainString args Exibir uma mensagem de diálogo JOptionPaneshowMessageDialognull Bemvindo ao exemplo JOptionPane Exibir uma mensagem com um título personalizado JOptionPaneshowMessageDialognull Este é um diálogo com título personalizado Título JOptionPaneINFORMATIONMESSAGE Solicitar entrada do usuário em um diálogo de entrada String input JOptionPaneshowInputDialogDigite seu nome JOptionPaneshowMessageDialognull Olá input Diálogo de confirmação int option JOptionPaneshowConfirmDialognull Você gostaria de continuar Confirmação JOptionPaneYESNOOPTION Interpretar a resposta do usuário if option JOptionPaneYESOPTION JOptionPaneshowMessageDialognull Você escolheu continuar else JOptionPaneshowMessageDialognull Você escolheu cancelar Resultados Prática 03 Bemvindo ao exemplo JOptionPane Olá Joice Este é um diálogo com título personalizado Você gostaria de continuar Digite seu nome Você escolheu continuar JButton É um componente gráfico que representa um botão clicável em uma interface de usuário Permite que os usuários interajam com o programa clicando no botão geralmente desencadeando uma ação específica O JButton pode exibir texto ícones ou ambos dependendo da necessidade Ele pode ser adicionado a contêineres como JFrame JPanel ou JToolBar permitindo a construção de interfaces de usuário ricas e interativas em aplicativos Java 04062024 Jbutton Propriedades setTextString stringdefine o texto do botão setFontFont fontpermite alterar a fonte do JButton A fonte é representada pela classe Font onde é definido o tamanho estilo e nome da fonte setBackgroundColor bgdefine a cor do fundo do botão setForegroundColor fgdefine a cor da fonte do botão setEnabledBoolean enabledquando o parâmetro é true permitese que o usuário clique no botão quando é false o botão fica bloqueado setIconIcon defaultIconseta um ícone para o botão O ícone pode ser representado pela classe ImageIcon e deve ser passado o caminho da imagem de onde está o ícone 04062024 JLabel O JLabel é utilizado para apresentar um texto fixo ao usuário É muito comum utilizar o componente como rótulo para os demais componentes ou seja para identificar o que representa cada campo na tela Pode ser utilizado também como saída de dados onde o usuário irá visualizar o resultado final de alguma operação O texto desse componente só pode ser alterado via código Propriedades JLabelString cria o rótulo com o texto especificado JLabelString int cria o rótulo de texto especificando o alinhamento que pode ser SwingConstantsLEFT SwingConstantsCENTER SwingConstantsRIGHT JLabelIcon image e JLabelString text Icon icon int horizontalAlignment Construtores com imagem ícones Propriedades setFontFont fontepermite alterar a fonte do JLabel A fonte é representada pela classe Font onde é definido o tamanho estilo e nome da fonte setForegroundColor fgdefine a cor da fonte setIconIconImage iconpermite adicionar um ícone ao JLabel O ícone é representado pela classe IconImage Para criar um IconImage deve ser passado como parâmetro o caminho da imagem Alguns métodos importantes setTextString altera o texto getText retorna o texto atual void setHorizontalTextPositionint textPosition Altera o alinhamento horizontal do texto void setVerticalTextPositionint textPosition Altera o alinhamento vertical do texto JTextField O JTextField é um campo utilizado para a entrada de informações Normalmente é uma caixa branca onde o usuário pode entrar com algum valor para que seja utilizado pelo algoritmo Campos JTextField cria o campo de texto vazio JTextFieldint cria o campo de texto com a largura especificada JTextFieldString int cria o campo de texto com um texto inicial e a largura especificada Alguns métodos importantes setTextString altera o texto getText retorna o texto atual getSelectedText retorna o texto selecionado pelo usuário Prática 04 public class Jframe01 public static void mainString args JFrame frame new JFrameCadastro de Login framesetDefaultCloseOperationJFrameEXITONCLOSE JPanel panel new JPanel JLabel nameLabel new JLabelNome JTextField nameField new JTextField10 paneladdnameLabel paneladdnameField framegetContentPaneaddpanel framesetSize300 100 framesetVisibletrue 04062024 public class Jframe01 public static void mainString args JFrame frame new JFrameLogin framesetDefaultCloseOperationJFrameEXITONCLOSE JPanel panel new JPanelnew GridLayout3 2 JLabel userLabel new JLabelUsuário JTextField userField new JTextField10 JLabel passwordLabel new JLabelSenha JPasswordField passwordField new JPasswordField10 JButton loginButton new JButtonLogin paneladduserLabel paneladduserField paneladdpasswordLabel paneladdpasswordField paneladdnew JLabel Adiciona um componente vazio para manter o layout paneladdloginButton framegetContentPaneaddpanel framesetSize300 150 framesetVisibletrue Eventos Os eventos são interações do usuário ou mudanças de estado que ocorrem em componentes da interface gráfica objeto originador interface gráfica e o objeto ouvinte quem trata de eventos Qualquer classe podem ser um ouvinte de um evento Para isso é necessário registrar essa classe como um ouvinte em uma classe originadora de eventos 04062024 Eventos Listener Ouvinte Um ouvinte é uma interface que contém métodos que são chamados quando um evento específico ocorre Existem diferentes tipos de ouvintes para diferentes tipos de eventos como ActionListener para eventos de ação MouseListener para eventos de mouse etc Fonte de Evento A fonte de evento é o objeto em que o evento ocorre Por exemplo se um botão for clicado o botão é a fonte do evento Registro de Ouvinte Para tratar um evento você precisa registrar um ouvinte com a fonte de evento Isso é feito chamando um método específico de registro de ouvinte na fonte de evento como addActionListener para eventos de ação addMouseListener para eventos de mouse etc Callback Quando um evento ocorre os métodos correspondentes no ouvinte são chamados Esses métodos são conhecidos como callbacks Por exemplo se você registrar um ActionListener em um botão e o botão for clicado o método actionPerformed no ActionListener será chamado 04062024 Eventos Os componentes Swing podem gerar vários tipos de eventos diferentes Alguns exemplos Usuário clica em um botão ActionListener Usuário fecha um frame WindowListener Usuário pressiona um botão do mouse MouseListener Usuário move o mouse MouseMotionListener Componentes se tornam visíveis ComponentListener 04062024 Hierarquia de Eventos import javaawtevent 04062024 BÁSICO PARA OUVIR EVENTOS ActionListener Este evento é gerado quando um componente interativo é ativado como um botão sendo clicado Especificar uma classe que implemente uma interface de listener public class MinhaFClasse implements ActionListener Código que implemente métodos dentro da interface listener public void actionPerformedActionEvent e codigo trata resposta do event Executar um código que registre uma instância desta classes como um listener de um ou mais componentes someComponentaddActionListenerinstanceOfMyClass Exemplo buttonaddActionListenerlistener 04062024 MouseEvent Este evento é gerado quando ocorrem ações do mouse como clicar mover o mouse ou soltar o botão do mouse componenteaddMouseListenernew MouseAdapter public void mouseClickedMouseEvent e Ação a ser realizada quando o mouse for clicado no componente SystemoutprintlnMouse pressionado no campo de texto 04062024 KeyListener Este evento é gerado quando ocorrem ações de teclado como pressionar ou soltar uma tecla campoDeTextoaddKeyListenernew KeyAdapter public void keyPressedKeyEvent e Ação a ser realizada quando uma tecla for pressionada no campo de texto 04062024 ItemEvent Este evento é gerado quando um item em um componente de seleção como uma caixa de seleção ou uma lista é selecionado ou desmarcado caixaDeSelecaoaddItemListenernew ItemListener public void itemStateChangedItemEvent e Ação a ser realizada quando um item da caixa de seleção for selecionado 04062024 Prática 05 1 Passo public class Event01 implements ActionListener public void actionPerformedActionEvent e JOptionPaneshowMessageDialognull O botão foi clicado 04062024 Prática 05 2 Passo import javaxswingJButton import javaxswingJFrame public class ExemploEvent01 extends JFrame private JButton botao public ExemploEvent01 setTitleExemplo de Eventos setSize300 200 setDefaultCloseOperationEXITONCLOSE botao new JButtonClique Aqui Event01 ev new Event01 botaoaddActionListenerev addbotao setVisibletrue 04062024 public static void mainString args new ExemploEvent01 Eclipse com interfaces gráficas Swing Abra o Eclipse Vá para o menu Help e selecione Eclipse Marketplace Na caixa de pesquisa digite WindowBuilder e pressione Enter Você deve ver o WindowBuilder na lista de resultados Clique no botão Install Instalar ao lado do WindowBuilder Siga as instruções na tela para concluir a instalação Reinicie o Eclipse quando solicitado 04062024 Habilitar o modo de design para arquivos Java No Eclipse vá para o menu Window Janela Preferences Na janela de preferências expanda WindowBuilder e selecione Swing Certifiquese de que a opção Enable the automatic creation of GUIs Criando o Cadastro de Pessoa 04062024 Prática 06 Criando o Cadastro de Pessoa 04062024 Inserir somente Números Botão Cadastrar Colocar lógica JButton btnCadastro new JButtonCadastrar btnCadastroaddActionListenernew ActionListener public void actionPerformedActionEvent e JOptionPaneshowMessageDialognull Cadastro efetuado txtNomegetText Idade txtIdadegetText 04062024 Fixação de conteúdo Desenvolva um cadastro simples de cliente utilizando Java Swing O programa deve permitir que o usuário insira informações básicas como nome sobrenome telefone cpf email rg endereco e um botão 04062024
Send your question to AI and receive an answer instantly
Recommended for you
22
Java Swing JComboBox e JCheckBox: Guia Pratico para Interfaces Graficas
Banco de Dados
UNIAMÉRICA
22
Java Swing Menu - Tutorial e Pratica com JMenu JMenuBar e JMenuItem
Banco de Dados
UNIAMÉRICA
1
Modelagem de Dados para Sistema de Aluguel de Carros - Diagrama Entidade-Relacionamento
Banco de Dados
ÁREA1 WYDEN
6
Auditoria de Cadastro de Produtos em ERP - Criação de Estruturas de Banco de Dados
Banco de Dados
ÁREA1 WYDEN
6
Estudo de Caso - Gerenciamento de Estoque de Livraria com SQL
Banco de Dados
DESCOMPLICA
2
Atividade Avaliativa - Sistemas de Banco de Dados e Gerenciamento de Informações
Banco de Dados
UNICESUMAR
1
Release 02 Sistema de Gerenciamento de Estacionamento - Implementacao Banco de Dados Relacional e JDBC
Banco de Dados
PUC
12
Manual de Instalação e Utilização MongoDB Community Server e Compass - Banco de Dados NoSQL
Banco de Dados
UNIA
1
Integração Front-End e Back-End com Spring Boot API RestFul - Tutorial Completo
Banco de Dados
PUC
176
Banco de Dados - Graduação EaD
Banco de Dados
UNICESUMAR
Preview text
JAVA SWING Profs Edrian da Silva Joice Wolfrann Willian Bogler Definição Swing é um conjunto de bibliotecas do Java para a construção de interfaces gráficas de usuário GUIs É parte da biblioteca padrão do Java e oferece um conjunto de componentes mais sofisticados do que a antiga biblioteca Abstract Window Toolkit AWT Swing permite a criação de aplicativos com interfaces gráficas ricas e independentes de plataforma 04062024 Principais características do Swing Independência de Plataforma Componentes Java puro com aparência e comportamento consistentes em qualquer sistema operacional MVC Segue o padrão MVC separando a lógica de negócios da interface facilitando a manutenção Personalização Permite adaptar a aparência dos componentes com UI Managers e Look and Feel Componentes Ricos Oferece muitos componentes prontos como botões tabelas e menus Gerenciamento de Layout Vários gerenciadores de layout para organizar componentes de forma flexível 04062024 JComponent JCheckBox JRadioButton JToggleButton JButton JMenuItem JMenu AbstractButton JTextComponent JPasswordField JTextField JTextPane JEditorPane Componentes de Texto JToolTip JSlider JOptionPane JScrollPane JMenuBar JList JScrollBar JInternalFrame JSeparator JToolbar JComboBox JPanel JTable JprogressBar JSplitPane JViewPoint JFileChooser JDesktopPane JLabel JPopupMenu JTree JRootPane JTabbedPane JColorChooser JLayeredPane Principais Componentes Botões Principais Componentes JFrame É um container formulário para outros componentes GUI JPanel Contêiner para organizar outros componentes JButton Área que aciona um evento quando o usuário clica JLabel Área em que podem ser exibidos texto nãoeditável ou ícones JTextField Área em que o usuário insere dados pelo tecladoentrada do usuário JTextArea Área de texto multilinha JCheckBox Possui dois estados selecionado ou nãoselecionado JComboBox Lista de itens que o usuário pode fazer uma seleção clicando em um item na lista ou digitando na caixa JRadioButton Botão de opção JList Área em que uma lista é exibida possibilitando a seleção clicando em qualquer item da lista JScrollPane Contêiner para rolar outros componentes JMenuBar JMenu JMenuItem Componentes de menu 04062024 JLabel JTextField JButton JCheckBox JList JComboBox JFrame JFrame JFrame é uma classe usada para criar janelas em aplicações Java onde podemos adicionar botões menus caixas de texto etc Precisamos importar a classe do pacote Swing import javaxswingJFrame Cada JFrame criado é uma janela diferente Podemos criar objetos da classe JFrame com um título passado como argumento para o construtor Além disso podemos definir ações para o botão de fechar close adicionar painéis definir o tamanho da janela e tornála visível ou não Para exibir um JFrame usamos o método setVisibletrue que torna a janela visível 04062024 JFrame Para mais informações httpsdocsoraclecomjavase6docsapijavaxswingJFramehtml 04062024 Prática 01 04062024 package view import javaxswingJFrame public class Jframe01 public static void mainString args JFrame janela new JFrame1 aula com Swing Define o comportamento ao fechar a janela janelasetDefaultCloseOperationJFrameEXITONCLOSE Tamanho da janela janelasetSize300 200 janelasetVisibletrue Jpanel Um container genérico e visual A principal tarefa do JPanel é organizar os componentes vários layouts podem ser definidos no JPanel que proporcionam melhor organização dos componentes porém não possui barra de título O construtor padrão cria um objeto JPanel com FlowLayout porém diferentes layouts podem ser especificados durante a construção ou através do método setLayout 04062024 Jpanel Construtores do JPanel JPanel cria um novo painel com um layout de fluxo JPanelLayoutManager l cria um novo JPanel com layoutManager especificado JPanelboolean isDoubleBuffered cria um novo JPanel com uma estratégia de buffer especificada JPanelLayoutManager l boolean isDoubleBuffered cria um novo JPanel com layoutManager especificado e uma estratégia de buffer especificada 04062024 Jpanel Funções comumente usadas do JPanel addComponent c Adiciona um componente a um contêiner especificado setLayoutLayoutManager l define o layout do contêiner para o gerenciador de layout especificado updateUI redefine a propriedade da UI com um valor da aparência atual setUIPanelUI ui define a aparência de um objeto que renderiza este componente getUI retorna o objeto de aparência que renderiza este componente paramString retorna uma representação em string deste JPanel getUIClassID retorna o nome da classe Look and Feel que renderiza este componente getAccessibleContext obtém o AccessibleContext associado a este JPanel 04062024 Prática 02 public class JPanel01 public static void mainString args JFrame frame new JFrameExemplo de JPanel framesetSize300 200 JPanel panel new JPanel panelsetLayoutnew FlowLayout JLabel label new JLabelOlá Bem vindos ao Swing paneladdlabel frameaddpanel add painel framesetDefaultCloseOperationJFrameEXITONCLOSE framesetVisibletrue 04062024 Métodos public void addComponent c add componente em outro componente public void setSizeint widthint height define o tamanho do componente public void setLayoutLayoutManager m define o gerenciador de layout do componente public void setVisibleboolean b define a visibilidade do componente Por padrão é falso 04062024 Gerenciadores de Layout Os gerenciadores de layout em Java são usados para organizar componentes GUI dentro de um container facilitando a apresentação visual Eles processam automaticamente muitos detalhes do posicionamento dos componentes proporcionando uma maneira eficiente de dispor elementos gráficos nos containers 04062024 Automação do Layout Eles automatizam o posicionamento e dimensionamento dos componentes gráficos nos containers Implementação de Interface Implementam a interface LayoutManager ou a subinterface LayoutManager2 Gerenciador Padrão Cada container JPanel ou JFrame possui um gerenciador de layout padrão associado Gerenciadores de Layout FlowLayout Organiza os componentes em uma linha alinhandoos à esquerda centro ou direita BorderLayout Divide o container em cinco regiões norte sul leste oeste e centro GridLayout Organiza os componentes em uma grade de células de tamanhos iguais BoxLayout Alinha os componentes em uma única linha ou coluna GridBagLayout Oferece um controle flexível e complexo sobre o layout permitindo especificar a posição e o tamanho de cada componente 04062024 Tipos de gerenciadores de layout BorderLayout Divide o container em cinco regiões norte sul leste oeste e centro 04062024 public static void mainString args JFrame frame new JFrameExemplo usando o BorderLayout framesetDefaultCloseOperationJFrameEXITONCLOSE framesetSize400 300 framesetLayoutnew BorderLayout frameaddnew JButtonNorte BorderLayoutNORTH frameaddnew JButtonSUL BorderLayoutSOUTH frameaddnew JButtonLeste BorderLayoutEAST frameaddnew JButtonOeste BorderLayoutWEST frameaddnew JButtonCentro BorderLayoutCENTER framesetVisibletrue Tipos de gerenciadores de layout FlowLayout Organiza os componentes em uma linha alinhandoos à esquerda centro ou direita 04062024 public class FlowLayout01 public static void mainString args JFrame frame new JFrameExemplo de FlowLayout framesetDefaultCloseOperationJFrameEXITONCLOSE Painel com FlowLayout JPanel panel new JPanel panelsetLayoutnew FlowLayout Add botões ao painel for int i 1 i 5 i JButton button new JButtonBotão i paneladdbutton framegetContentPaneaddpanel add o painel ao frame framesetSize300 150 framesetVisibletrue Tipos de gerenciadores de layout GridLayout layout de contêiner em Java que organiza os componentes em uma grade retangular de células 04062024 public class GridLayout01 public static void mainString args JFrame frame new JFrameExemplo de GridLayout framesetDefaultCloseOperationJFrameEXITONCLOSE Criando um JPanel com GridLayout JPanel panel new JPanelnew GridLayout3 3 Grid de 3 linhas e 3 colunas add botões ao JPanel for int i 1 i 9 i JButton button new JButtonBotão i paneladdbutton frameaddpanel JPanel ao JFrame framepack define o tamanho da tela com base do conteúdo framesetVisibletrue JOptionPane É uma classe que possibilita a criação de uma caixa de dialogo padrão que ou solicita um valor para o usuário ou retorna uma informação Para utilizarmos a classe JOptionPane temos sempre que importar o pacote javaxswingJOptionPane Usamos então está linha de comando import javaxswingJOptionPane Sempre antes no inicio do código da classe Métodos Método Descrição showConfirmDialog Solicita uma confirmação comoYES NO CANCEL showInputDialog Solicita algum valor showMessageDialog Informa ao usuário sobre algo showOptionDialog Unificação dos tres acima Parametros Parametro Descrição parentComponent Define a caixa de diálogo onde irá aparecer todo o conteúdo Há duas maneiras de definir a caixa de diálogo a primeira você mesmo cria utilizando os conceitos da classe JFrame A segunda você define esse parametro como null e o java irá gerar uma caixa de diálogo padrão Message É a messagem que o usuário deve ler Esta mensagem pode ser uma simples String ou um conjunto de objetos messageType Define o estilo da mensagem O gerente de aparencia pode expor a caixa de dialogo de formas diferentesdependendo deste valor pode fornecer um icone padrãoExemplos ERRORMESSAGE INFORMATIONMESSAGE WARNINGMESSAGE QUESTIONMESSAGE PLAINMESSAGE optionType Define o conjunto de botões que irá aparecer na parte inferior da caixa de diálogo Exemplos DEFAULTOPTION YESNOOPTION YESNOCANCELOPTION OKCANCELOPTION Prática 03 04062024 import javaxswingJOptionPane public class Jframe01 public static void mainString args Exibir uma mensagem de diálogo JOptionPaneshowMessageDialognull Bemvindo ao exemplo JOptionPane Exibir uma mensagem com um título personalizado JOptionPaneshowMessageDialognull Este é um diálogo com título personalizado Título JOptionPaneINFORMATIONMESSAGE Solicitar entrada do usuário em um diálogo de entrada String input JOptionPaneshowInputDialogDigite seu nome JOptionPaneshowMessageDialognull Olá input Diálogo de confirmação int option JOptionPaneshowConfirmDialognull Você gostaria de continuar Confirmação JOptionPaneYESNOOPTION Interpretar a resposta do usuário if option JOptionPaneYESOPTION JOptionPaneshowMessageDialognull Você escolheu continuar else JOptionPaneshowMessageDialognull Você escolheu cancelar Resultados Prática 03 Bemvindo ao exemplo JOptionPane Olá Joice Este é um diálogo com título personalizado Você gostaria de continuar Digite seu nome Você escolheu continuar JButton É um componente gráfico que representa um botão clicável em uma interface de usuário Permite que os usuários interajam com o programa clicando no botão geralmente desencadeando uma ação específica O JButton pode exibir texto ícones ou ambos dependendo da necessidade Ele pode ser adicionado a contêineres como JFrame JPanel ou JToolBar permitindo a construção de interfaces de usuário ricas e interativas em aplicativos Java 04062024 Jbutton Propriedades setTextString stringdefine o texto do botão setFontFont fontpermite alterar a fonte do JButton A fonte é representada pela classe Font onde é definido o tamanho estilo e nome da fonte setBackgroundColor bgdefine a cor do fundo do botão setForegroundColor fgdefine a cor da fonte do botão setEnabledBoolean enabledquando o parâmetro é true permitese que o usuário clique no botão quando é false o botão fica bloqueado setIconIcon defaultIconseta um ícone para o botão O ícone pode ser representado pela classe ImageIcon e deve ser passado o caminho da imagem de onde está o ícone 04062024 JLabel O JLabel é utilizado para apresentar um texto fixo ao usuário É muito comum utilizar o componente como rótulo para os demais componentes ou seja para identificar o que representa cada campo na tela Pode ser utilizado também como saída de dados onde o usuário irá visualizar o resultado final de alguma operação O texto desse componente só pode ser alterado via código Propriedades JLabelString cria o rótulo com o texto especificado JLabelString int cria o rótulo de texto especificando o alinhamento que pode ser SwingConstantsLEFT SwingConstantsCENTER SwingConstantsRIGHT JLabelIcon image e JLabelString text Icon icon int horizontalAlignment Construtores com imagem ícones Propriedades setFontFont fontepermite alterar a fonte do JLabel A fonte é representada pela classe Font onde é definido o tamanho estilo e nome da fonte setForegroundColor fgdefine a cor da fonte setIconIconImage iconpermite adicionar um ícone ao JLabel O ícone é representado pela classe IconImage Para criar um IconImage deve ser passado como parâmetro o caminho da imagem Alguns métodos importantes setTextString altera o texto getText retorna o texto atual void setHorizontalTextPositionint textPosition Altera o alinhamento horizontal do texto void setVerticalTextPositionint textPosition Altera o alinhamento vertical do texto JTextField O JTextField é um campo utilizado para a entrada de informações Normalmente é uma caixa branca onde o usuário pode entrar com algum valor para que seja utilizado pelo algoritmo Campos JTextField cria o campo de texto vazio JTextFieldint cria o campo de texto com a largura especificada JTextFieldString int cria o campo de texto com um texto inicial e a largura especificada Alguns métodos importantes setTextString altera o texto getText retorna o texto atual getSelectedText retorna o texto selecionado pelo usuário Prática 04 public class Jframe01 public static void mainString args JFrame frame new JFrameCadastro de Login framesetDefaultCloseOperationJFrameEXITONCLOSE JPanel panel new JPanel JLabel nameLabel new JLabelNome JTextField nameField new JTextField10 paneladdnameLabel paneladdnameField framegetContentPaneaddpanel framesetSize300 100 framesetVisibletrue 04062024 public class Jframe01 public static void mainString args JFrame frame new JFrameLogin framesetDefaultCloseOperationJFrameEXITONCLOSE JPanel panel new JPanelnew GridLayout3 2 JLabel userLabel new JLabelUsuário JTextField userField new JTextField10 JLabel passwordLabel new JLabelSenha JPasswordField passwordField new JPasswordField10 JButton loginButton new JButtonLogin paneladduserLabel paneladduserField paneladdpasswordLabel paneladdpasswordField paneladdnew JLabel Adiciona um componente vazio para manter o layout paneladdloginButton framegetContentPaneaddpanel framesetSize300 150 framesetVisibletrue Eventos Os eventos são interações do usuário ou mudanças de estado que ocorrem em componentes da interface gráfica objeto originador interface gráfica e o objeto ouvinte quem trata de eventos Qualquer classe podem ser um ouvinte de um evento Para isso é necessário registrar essa classe como um ouvinte em uma classe originadora de eventos 04062024 Eventos Listener Ouvinte Um ouvinte é uma interface que contém métodos que são chamados quando um evento específico ocorre Existem diferentes tipos de ouvintes para diferentes tipos de eventos como ActionListener para eventos de ação MouseListener para eventos de mouse etc Fonte de Evento A fonte de evento é o objeto em que o evento ocorre Por exemplo se um botão for clicado o botão é a fonte do evento Registro de Ouvinte Para tratar um evento você precisa registrar um ouvinte com a fonte de evento Isso é feito chamando um método específico de registro de ouvinte na fonte de evento como addActionListener para eventos de ação addMouseListener para eventos de mouse etc Callback Quando um evento ocorre os métodos correspondentes no ouvinte são chamados Esses métodos são conhecidos como callbacks Por exemplo se você registrar um ActionListener em um botão e o botão for clicado o método actionPerformed no ActionListener será chamado 04062024 Eventos Os componentes Swing podem gerar vários tipos de eventos diferentes Alguns exemplos Usuário clica em um botão ActionListener Usuário fecha um frame WindowListener Usuário pressiona um botão do mouse MouseListener Usuário move o mouse MouseMotionListener Componentes se tornam visíveis ComponentListener 04062024 Hierarquia de Eventos import javaawtevent 04062024 BÁSICO PARA OUVIR EVENTOS ActionListener Este evento é gerado quando um componente interativo é ativado como um botão sendo clicado Especificar uma classe que implemente uma interface de listener public class MinhaFClasse implements ActionListener Código que implemente métodos dentro da interface listener public void actionPerformedActionEvent e codigo trata resposta do event Executar um código que registre uma instância desta classes como um listener de um ou mais componentes someComponentaddActionListenerinstanceOfMyClass Exemplo buttonaddActionListenerlistener 04062024 MouseEvent Este evento é gerado quando ocorrem ações do mouse como clicar mover o mouse ou soltar o botão do mouse componenteaddMouseListenernew MouseAdapter public void mouseClickedMouseEvent e Ação a ser realizada quando o mouse for clicado no componente SystemoutprintlnMouse pressionado no campo de texto 04062024 KeyListener Este evento é gerado quando ocorrem ações de teclado como pressionar ou soltar uma tecla campoDeTextoaddKeyListenernew KeyAdapter public void keyPressedKeyEvent e Ação a ser realizada quando uma tecla for pressionada no campo de texto 04062024 ItemEvent Este evento é gerado quando um item em um componente de seleção como uma caixa de seleção ou uma lista é selecionado ou desmarcado caixaDeSelecaoaddItemListenernew ItemListener public void itemStateChangedItemEvent e Ação a ser realizada quando um item da caixa de seleção for selecionado 04062024 Prática 05 1 Passo public class Event01 implements ActionListener public void actionPerformedActionEvent e JOptionPaneshowMessageDialognull O botão foi clicado 04062024 Prática 05 2 Passo import javaxswingJButton import javaxswingJFrame public class ExemploEvent01 extends JFrame private JButton botao public ExemploEvent01 setTitleExemplo de Eventos setSize300 200 setDefaultCloseOperationEXITONCLOSE botao new JButtonClique Aqui Event01 ev new Event01 botaoaddActionListenerev addbotao setVisibletrue 04062024 public static void mainString args new ExemploEvent01 Eclipse com interfaces gráficas Swing Abra o Eclipse Vá para o menu Help e selecione Eclipse Marketplace Na caixa de pesquisa digite WindowBuilder e pressione Enter Você deve ver o WindowBuilder na lista de resultados Clique no botão Install Instalar ao lado do WindowBuilder Siga as instruções na tela para concluir a instalação Reinicie o Eclipse quando solicitado 04062024 Habilitar o modo de design para arquivos Java No Eclipse vá para o menu Window Janela Preferences Na janela de preferências expanda WindowBuilder e selecione Swing Certifiquese de que a opção Enable the automatic creation of GUIs Criando o Cadastro de Pessoa 04062024 Prática 06 Criando o Cadastro de Pessoa 04062024 Inserir somente Números Botão Cadastrar Colocar lógica JButton btnCadastro new JButtonCadastrar btnCadastroaddActionListenernew ActionListener public void actionPerformedActionEvent e JOptionPaneshowMessageDialognull Cadastro efetuado txtNomegetText Idade txtIdadegetText 04062024 Fixação de conteúdo Desenvolva um cadastro simples de cliente utilizando Java Swing O programa deve permitir que o usuário insira informações básicas como nome sobrenome telefone cpf email rg endereco e um botão 04062024