Interfaces Grficas em Java Prof Omero Francisco Bertol
Interfaces Gráficas em Java Prof. Omero Francisco Bertol. (omero@utfpr. edu. br) Novembro/ 2017
Interfaces Gráficas em Java • Tipos de bibliotecas de classes de componentes gráficos: – AWT: Abstract Window Toolkit, Package java. awt – Swing: Package javax. swing import javax. swing. JOption. Pane; import static javax. swing. JOption. Pane. INFORMATION_MESSAGE; JOption. Pane. show. Message. Dialog(null, "Alô Mundo!", "Minha Primeira Mensagem", INFORMATION_MESSAGE);
Projeto Janela | Ferramentas do IDE | Paleta (Componentes) Janela | Ferramentas do IDE | Propriedades Janela | Projetos Janela | Navegador JFrame: formulário, janela, ou interface com o usuário
Componentes (1/3) • Os componentes, ou controles, são os elementos centrais do desenvolvimento de aplicativos com interfaces gráficas no Java. • Os controles podem ser definidos como componentes visuais em: – Controles ajanelados: podem receber o foco de entrada e conter outros controles. JButton JText. Field – Controles não-ajanelados: não possuem nenhum manipulador, não podem receber o foco de entrada e não podem conter outros controles. JLabel
Componentes (2/3) • Os componentes podem ser visuais e não-visuais. JButton • Todo componente que é adicionado a um formulário (JFrame) torna-se um objeto de interface com o usuário. Button. Group
Componentes (3/3) • Todos os componentes são objetos inseridos no conceito de orientação a objetos. • Estes componentes encapsulam vários conjuntos de dados, assim como funções de acesso aos mesmos. • Um elemento declarado a partir de um componente, herda propriedades, métodos e eventos e se comporta como o objeto do qual herdou tais características. • Todos os componentes possuem três tipos de informações extremamente importantes: – Informação de Estado (propriedades) – Informação de Ação (métodos) – Informação de Retorno (qual será a resposta ao evento)
Paleta de Componentes Para exibí-la no Net. Beans IDE: Janela | Ferramentas do IDE | Paleta (Ctrl+Shift+8)
Propriedades As propriedades são atributos de classes que determinam o estado de um objeto, como, por exemplo, sua posição e sua aparência, e também seu comportamento. Para exibí-la no Net. Beans IDE: Janela | Ferramentas do IDE | Propriedades (Ctrl+Shift+7)
Identificando Componentes Todo componente do Java pode ter um nome que deve ser único dentro do componente proprietário, geralmente um formulário (JFrame). 1) Selecionar o componente, botão direito do mouse, opção “Alterar o Nome da Variável”. ou 2) Janela Propriedades (Ctrl+Shift+7), aba “Código”, “Nome da Variável”.
Eventos de Componentes (2/2) Os métodos de componentes são exatamente iguais a quaisquer outros métodos. Há procedimentos e funções relacionados a um objeto que podem ser chamados para executar a ação correspondente. Por exemplo: j. Text. Field 1. get. Text(); j. Text. Area 1. set. Text(""); j. Text. Area 1. append(pessoa. to. String()); this. dispose();
Minha primeira Janela: no projeto Java criar um formulário JFrame. Novo | Form JFrame
Propriedades do JFrame (Janela Propriedades): Janela Propriedades: Aba “Propriedades” title Minha Primeira Janela. resizable desmarcado desabilita a opção para maximizar a janela Windows Janela Propriedades: Aba “Código” Gerar Centralizado marcado mostra a janela centralizada
Componente JLabel: para mostrar um rótulo. Janela Propriedades: Aba “Propriedades” texto (ou rótulo) que será mostrado font define tipo, estilo e tamanho da fonte
Componente JText. Field: para entrada de dados. Janela Propriedades: Aba “Propriedades” text apagar o conteúdo (valor da entrada de dados) font define tipo, estilo e tamanho da fonte Janela Propriedades: Aba “Código” Nome da variável define o nome do componente (nome e dt. Nasc)
Componentes Button. Group e JRadio. Button: botões de opções. JRadio. Button (define os botões) Button. Group (agrupa os botões) Janela Propriedades: Aba “Propriedades” texto (ou rótulo) da opção button. Group seleciona o grupo do botão da opção Janela Propriedades: Aba “Código” Nome da variável define o nome do componente (sexo_Masculino e sexo_Feminino)
Componente JButton: botões de ação (OK, Fechar, Confirmar, . . . ). Janela Propriedades: Aba “Propriedades” texto (ou rótulo) do botão font define tipo, estilo e tamanho da fonte foreground cor do texto do botão Janela Propriedades: Aba “Código” Nome da variável define o nome do componente (bt. OK e bt. Fechar)
Componente JText. Area: entrada de textos longos (várias linhas). Janela Propriedades: Aba “Propriedades” text valor da entrada de dados font define tipo, estilo e tamanho da fonte background cor de fundo do componente Janela Propriedades: Aba “Código” Nome da variável define o nome do componente (result)
Eventos de Componentes (1/2) • Quando o usuário pratica uma ação sobre um componente, como, por exemplo, dando um clique do mouse sobre ele, o componente gera um evento. • Quando for necessário adicionar código a um programa, a primeira pergunta que deve ser feita é: Onde ? Num ambiente motivado por eventos, como é o ambiente gráfico, o código é sempre executado em resposta a um evento.
Eventos de Componentes 1) Selecionar o componente, botão direito do mouse, opção “Eventos”. ou 2) Janela Propriedades (Ctrl+Shift+7), aba “Eventos”. (2/2)
Classes: “Data” e “Pessoa” public final class Data { // atributos (ou propriedades) private int dia; private int mes; private int ano; // operações (ou métodos) public Data(int dia, int mes, int ano) {. . . } public Data() {. . . } public int get. Dia() {. . . } public void set. Dia(int dia) {. . . } public int get. Mes() {. . . } public void set. Mes(int mes) {. . . } public int get. Ano() {. . . } public void set. Ano(int ano) {. . . } public int calcula. Idade() {. . . } public String nome. Mes(boolean abreviado) {. . . } public String mostrar. Data(int tipo) {. . . } } public class Pessoa { // atributos (ou propriedades) private String nome; private char sexo; private Data dt. Nasc; // operações (ou métodos) public Pessoa(String nome, char sexo, Data dt. Nasc) {. . . } public String get. Nome() {. . . } public void set. Nome(String nome) {. . . } public char get. Sexo() {. . . } public void set. Sexo(char sexo) {. . . } public Data get. Dtnasc() {. . . } public void set. Dtnasc(Data dt. Nasc) {. . . } @Override public String to. String() {. . . } }
private void bt. OKAction. Performed(java. awt. event. Action. Event evt) { try { result. set. Text(""); char sexo; if (sexo_Masculino. is. Selected()) sexo = 'M'; else sexo = 'F'; String dt[] = dt. Nasc. get. Text(). split("/"); int dia = Integer. parse. Int(dt[0]); int mes = Integer. parse. Int(dt[1]); int ano = Integer. parse. Int(dt[2]); Pessoa pessoa = new Pessoa(nome. get. Text(), sexo, new Data(dia, mes, ano)); result. append(pessoa. to. String()); } catch(Number. Format. Exception erro) { result. append(erro. get. Message()); } }
private void bt. Fechar. Action. Performed(java. awt. event. Action. Event evt) { try { File. Writer arq = new File. Writer("result. txt"); Print. Writer gravar. Arq = new Print. Writer(arq); gravar. Arq. printf("%s", result. get. Text()); gravar. Arq. close(); } catch(IOException erro) { JOption. Pane. show. Message. Dialog(null, erro. get. Message(), "Erro: ", ERROR_MESSAGE); } this. dispose(); }
Minha Primeira Janela (JFrame)
Dicas Práticas (1/3) Para alterar a propriedade “text” de componentes, como por exemplo: JLabel, JButton e JRadio. Button; dar um clique do mouse no componente para selecioná-lo e a seguir um segundo clique, ou também, pressionar “F 2”.
Dicas Práticas (2/3) Selecionando o componente e pressionando o botão direito do mouse pode-se: • alterar a propriedade “text”(Editar Texto); • alterar o nome do componente (Alterar o Nome da Variável. . . ) • Selecionar evento para o componente (Eventos).
Dicas Práticas (3/3) 3. Para remover um evento do código-fonte: 1. selecionar o componente 3. Remover 2. selecionar o evento
- Slides: 26