Baixe o app para aproveitar ainda mais
Prévia do material em texto
Linguagem de Programação Java SWING - II Java SwingJava Swing • A construção da interface (janela da aplicação) compreende a utilização de um JFrame e outros controles visuais (classes da biblioteca javax.swing) • O exemplo a seguir, apresenta os detalhes da• O exemplo a seguir, apresenta os detalhes da construção da interface. Obs.: O exemplo aqui demonstrado toma como base as facilidades e recursos de “desenho” da interface através da ferramenta NetBeans 6.5. Java Swing Java Swing -- JFrameJFrame • Ao criar uma formulário JFrame, é criada uma classe com um nome dado. No caso a classe é a FrmAluno (Frm é um mnemônico convenção para este projeto). • A classe FrmAluno é criada com base na classe JFrame já existente na biblioteca Swing. Aqui tem-se um aplicado do processo de herança do Java (a ser explicado posteriormente). Java Swing Java Swing -- JFrameJFrame Classe FrmAluno (JFrame) • A classe FrmAluno já tem as funcionalidades básicas de uma janela Windows. Pode-se redimensionar,de uma janela Windows. Pode-se redimensionar, minimizar, maximizar e fechar. • A classe FrmAluno é um extensão da classe JFrame. public class FrmAluno extends JFrame { } Java Swing Java Swing -- FrmAlunoFrmAluno • O NetBeans cria o método main da classe FrmAluno (transcrito abaixo). public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { ---> new FrmAluno().setVisible(true); }} }); } • É uma implementação que utiliza um recurso de interface da classe Thread da biblioteca Java. No entanto, o mais importante é que o método instancia um objeto da classe FrmAluno (new FrmAluno()) e que aciona o método setVisible para true. Isto faz com que a janela seja exibida. Java Swing Java Swing -- FrmAlunoFrmAluno • A partir da paleta de componentes Swing do NetBeans, controles podem se adicionados ao Frame. Campos Texto Rótulos Botões • Rótulo – identificação de informação na interface • Campo Texto – captura de dados digitados pelo usuário e apresentação de informações ao usuário • Botões – obter ações a serem executadas na aplicação. Java Swing Java Swing -- FrmAlunoFrmAluno • A inserção dos controles visuais (classes) na janela, ocasiona a geração de código Java correspondente. • A Janela criada com os controles adicionados gera um código Java conforme dado abaixo. Apenas as declarações dos objetos. // Variables declaration - do not modify private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JTextField jTextField1; private javax.swing.JTextField jTextField2; private javax.swing.JTextField jTextField3; // End of variables declaration Java Swing Java Swing -- FrmAlunoFrmAluno • Os controles visuais precisam ser alterados para que a interface tenha uma definição mais clara para a operação do usuário. • No clique com botão direito sobre os controles, você pode “Editar Texto” que consiste em alterar o comportamento visual do controle. • No “Alterar Nome da Variável” você irá alterar no nome do objeto dentro do programa. • No Rótulo (classe JLabel) você vai apenas “Editar Texto”. Java Swing Java Swing -- FrmAlunoFrmAluno • No Campo Texto você irá “Editar Texto” para deixar a área de edição do campo vazia. E irá “Alterar Nome da Variável” para definir o nome do objeto dentro do programa. A mesma coisa aplica-se ao Botão. • Por que é importante dar nomes aos objetos, como Campo Texto e Botão? Para facilitar a edição de código no tratamento desses objetos. Editar Texto: limpar a área Editar Texto: limpar a área de edição do campo Editar Texto: Dar um nome de operação ao botão Java Swing Java Swing -- FrmAlunoFrmAluno • No “Alterar Nome da Variável”, os campos textos recebem um nome de objeto e também os botões. • Uma convenção estabelecida para as práticas são: � Campo texto – txt � Botão - btn txtMatrtxtMatr txtNome txtEmail btnIncluir btnConsultar btnLimpar Java Swing Java Swing -- FrmAlunoFrmAluno • Com os objetos renomeados de seu nome default para nomes específicos, o NetBeans altera o código fonte interno na forma abaixo. // Variables declaration - do not modify private javax.swing.JButton btnConsultar; private javax.swing.JButton btnIncluir; JButtons private javax.swing.JButton btnLimpar; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JTextField txtEmail; private javax.swing.JTextField txtMatr; private javax.swing.JTextField txtNome; // End of variables declaration JTextFields Java Swing Java Swing –– Construtor FrmAlunoConstrutor FrmAluno • Se você observar o construtor da classe FrmAluno há apenas uma chamada ao método initComponents() implementando pelo NetBeans. • No initComponents, é onde está implementada a instancia de todos os objetos que compõe a Janela (exceto JFrame) e onde são definidos as propriedades de cada componente. public FrmAluno() { initComponents(); } Java Swing Java Swing –– Construtor FrmAlunoConstrutor FrmAluno • Conforme explicado anteriormente, os controles visuais são classes da biblioteca Java. • Essas classes possuem atributos que são denominados nas ferramentas de desenvolvimento, como o NetBeans, pelo nome de propriedades. • Exemplo: A classe JTextField possui um atributo Text, conhecido• Exemplo: A classe JTextField possui um atributo Text, conhecido pela propriedade Text. O valor (String) que estiver dentro desse atributo é apresentado de forma visual na janela Windows. • A propriedade Text de um JButton é o nome (texto) que aparece sobre o botão. O mesmo ocorre com o JLabel. Java Swing Java Swing –– Construtor FrmAlunoConstrutor FrmAluno • No método initComponents(), que acionado (chamado) a partir do construtor é onde os controles visuais são instanciados. Veja o código abaixo. private void initComponents() { jLabel1 = new javax.swing.JLabel();jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); txtMatr = new javax.swing.JTextField(); txtNome = new javax.swing.JTextField(); txtEmail = new javax.swing.JTextField(); btnIncluir = new javax.swing.JButton(); btnConsultar = new javax.swing.JButton(); btnLimpar = new javax.swing.JButton(); Java Swing Java Swing –– Construtor FrmAlunoConstrutor FrmAluno • Ainda no método initComponents(), o código abaixo representa a alteração da propriedade Text dos objetos das classes JLabel e JButton. jLabel1.setText("Matricula:");jLabel1.setText("Matricula:"); jLabel2.setText("Nome do Aluno:"); jLabel3.setText("E-mail:"); btnIncluir.setText("Incluir"); btnConsultar.setText("Consultar"); btnLimpar.setText("Limpar"); Java Swing Java Swing –– programando Evento no Botãoprogramando Evento no Botão • A programação da interface, é baseada em eventos tal como um clique no botão. • Um evento deve ser processado por um código implementado, quando o evento for acionado.quando o evento for acionado. • Num botão, ao usuário clicar sobre ele, um evento ActionPerformed é acionado e é esperado que um código “responda” ao evento. Caso não haja nenhum código implementado, nem um efeito ou processamento ocorre no clique do botão. Java Swing Java Swing –– programando Evento no Botãoprogramando Evento no Botão • Para implementar um código a ser tratado no botão, na etapa de desenvolvimento um duplo clique sobre um botão deverá abrir uma janela de edição de código conforme exemplo abaixo para o botão btnLimpar private void btnLimparActionPerformed( java.awt.event.ActionEvent evt) { //TODO add your handling code here: } • O evento ActionPerformed passa para a aplicação um objeto com dados do evento – o objeto evt. • O comentário indica que você deve adicionar o seu código dentro do método. Java Swing Java Swing –– programando Evento no Botãoprogramando Evento no Botão • Um exemplo de implementação do btnLimpar private void btnLimparActionPerformed (java.awt.event.ActionEvent evt) { txtMatr.setText(""); txtNome.setText("");txtNome.setText(""); txtEmail.setText(""); } • setText(“”) – inserir uma string vazia no atributo Text da classe JTextField, no caso txtMatr.
Compartilhar