Buscar

APLIC LING PROGR ORIEN OBJETOS - MÓDULO COMPLEMENTAR II

Prévia do material em texto

Este módulo aborda a criação de componentes visuais utilizando a biblioteca SWING e o tratamento de eventos.
As APIs de interface gráfica do Java favorecem, ao máximo, o lema de portabilidade da plataforma Java. O look-and-feel do Swing é único em todas as plataformas onde roda, seja ela Windows, Linux ou qualquer outra. Isso implica que a aplicação terá
exatamente a mesma interface (cores, tamanhos, etc) em qualquer sistema operacional.
Grande parte da complexidade das classes e métodos do Swing está no fato da API ter sido desenvolvida tendo em mente o máximo de portabilidade possível. Favorece-se, por exemplo, o posicionamento relativo de componentes, em detrimento do uso de
posicionamento fixo, que poderia prejudicar usuários com resoluções de tela diferentes da prevista.
Com Swing, não importa qual sistema operacional, qual resolução de tela, ou qual profundidade de cores: sua aplicação se comportará da mesma forma em todos os ambientes (A biblioteca do Swing está no pacote javax.swing).
 
import javax.swing.JOptionPane;
public class OlaSwing {
public static void main(String[] args) {
JOptionPane.showMessageDialog(null, "Ola Swing!");
}
}
 
O primeiro argumento recebido pelo método showMessageDialog indica qual é o componente pai (no caso, null, porque não temos mais componentes); o segundo indica a mensagem a ser exibida. Há outro método sobrecarregado onde se pode configurar o
título da janela, o tipo de mensagem ou até o ícone a ser exibido. Nesta classe JoptionPane, há ainda outros métodos para exibir janelas de confirmação (Ok/Cancelar) e janelas para entrada de dados pelo usuário (input).
A maioria das aplicações gráficas do mundo têm, em algum momento, algum formulário para entrada de dados. A API do Swing traz uma série de componentes visuais prontos para uso. São campos de texto, botões, checkboxes, labels, tabelas, árvores e
muitos outros. Para começar nosso formulário, usaremos dois componentes: um campo de texto (JTextField) e uma etiqueta/label (JLabel):
 
// O JLabel recebe o texto a ser exibido
JLabel label = new JLabel("Seu nome:");
 
// O JTextField recebe o tamanho do campo
JTextField textField = new JTextField(20);
 
Todo componente Swing deve ser adicionado a um contêiner (Container) que administrará o agrupamento e exibição dos mesmos. Usaremos o container mais comum, um Jpanel (algo como um painel de componentes). Através de seu método add,
consegue-se adicionar nossos componentes:
 
// Cria um JPanel (container)
JPanel panel = new JPanel();
 
// adiciona os componentes
panel.add(label);
panel.add(textField);
 
Por último, para exibir o formulário simples, precisa-se colocar o Jpanel em uma janela. Utiliza-se aqui a classe JFrame, que representa uma janela simples.
 
// Criamos um JFrame passando o título da janela
JFrame frame = new JFrame("Meu primeiro formulário");
 
// Adicionamos nosso JPanel
frame.add(panel);
 
// Preparamos o JFrame para exibição
frame.pack();
frame.setVisible(true);
 
O método pack() de JFrame, chamado acima, serve para redimensionar o frame para um tamanho adequado baseado nos componentes que ele tem. E o setVisible recebe um boolean indicando se queremos que a janela seja visível ou não. Apenas
adicionando um último comando, indica-se ao frame que a aplicação deve ser terminada quando o usuário fechar a janela.
 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
Para ações diferenciadas como, por exemplo, recuperar o valor digitado pelo usuário para efetuar alguma operação, trabalha-se com eventos que são disparados pelo usuário. No Swing isto é feito através de interfaces. Neste caso, o usuário pode disparar
eventos ao digitar, ao clicar e ao passar o mouse, dentre outras.
Em continuidade ao formulário, propõe-se o uso de um botão (componente) que, quando clicado pelo usuário (evento), disparará um método (tratador/handler). Neste método, busca-se recuperar o texto digitado pelo usuário e efetuar alguma ação. O
componente Swing que representa um botão é o Jbutton. Assim, será necessário criar um botão e colocá-lo no nosso container (o JPanel):
 
// cria o JButton passando o texto do botao
JButton button = new JButton("Exibir");
 
// adiciona o botao ao JPanel
panel.add(button);
 
Isso acrescentará o botão ao formulário. Mas para além disto, o Swing possui o conceito de Listeners (ouvintes), que são interfaces que implementamos com métodos para serem disparados por eventos. No exemplo aqui utilizado, para fazer um método
disparar ao clique do botão, usa-se a interface ActionListener, a qual dá um método ActionPerformed:
 
public void actionPerformed(ActionEvent e) {
// implementação aqui...
}
 
Para fazer a própria classe formulário implementar essa interface e esse método, ou seja, com que quando o botão for clicado, pegue-se o texto digitado pelo usuário e exiba-se na tela (por meio do JOptionPane), o método, ActionPerformed fica desta
forma:
 
public void actionPerformed(ActionEvent e) {
// pega o texto do JTextField
String texto = textField.getText();
// exibe usando o JOptionPane
JOptionPane.showMessageDialog(frame, texto);
// aqui usamos o frame como componente pai do messageDialog
}
 
Para finalizar, indica-se que esta ação (ActionListener) deve ser disparada quando o botão for clicado. Faz-se isso através do método addActionListener, chamado no botão. Ele recebe como argumento um objeto que implementa ActionListener (neste
exemplo, o próprio Formulário, o this):
 
button.addActionListener(this);
 
Exercício 1:
Para ações diferenciadas como, por exemplo, recuperar o valor digitado pelo usuário para efetuar alguma operação, trabalha-se com eventos que são disparados pelo usuário. No Swing isto é feito através de interfaces. Neste
caso, o usuário pode disparar eventos ao digitar, ao clicar e ao passar o mouse, dentre outras. Assinale a alteranativa correta:
A)
Para fazer um método disparar ao clique do botão, usa-se a interface ActionPerformed, a qual dá um método ActionListener :
B)
Para fazer um método disparar ao clique do botão, usa-se a interface Action, a qual dá um método ActionPerformed:
C)
O Swing possui o conceito de Action(ouvintes), que são interfaces que implementamos com métodos para serem disparados por eventos.
D)
O Swing possui o conceito de Listeners (ouvintes), que são interfaces que implementamos com métodos para serem disparados por eventos.
E)
Uma ação (ActionListener) deve ser disparada quando o botão for clicado. Faz-se isso através do método addActionPerformed, chamado no botão.
O aluno respondeu e acertou. Alternativa(D)
Comentários:
Essa disciplina não é ED ou você não o fez comentários
Exercício 2:
A maioria das aplicações gráficas do mundo têm, em algum momento, algum formulário para entrada de dados. A API do Swing traz uma série de componentes visuais prontos para uso. São campos de texto, botões, checkboxes, labels, tabelas, árvores e
muitos outros. Qual das alternativas apresentam somente componente do Swing:
A)
Button button = new Button("OK:");
JTextField textField = new JTextField(20);
JPanel panel = new JPanel();
panel.add(button);
panel.add(textField);
 
B)
JButton button = new JButton("OK:");
JTextField textField = new JTextField(20);
JPanel panel = new JPanel();
panel.add(button);
panel.add(textField);
C)
JButton button = new JButton("OK:");
TextField textField = new TextField(20);
JPanel panel = new JPanel();
panel.add(button);
panel.add(textField);
D)
JButton button = new JButton("OK:");
JTextField textField = new JTextField(20);
Panel panel = new Panel();
panel.add(button);
panel.add(textField);
E)
JButton button = new JButton("OK:");
JTextField textField = new JTextField(20);
JPanel panel = new JPanel();
Jpanel.add(button);
Jpanel.add(textField);
O aluno respondeu e acertou. Alternativa(B)
Comentários:
Essa disciplina não é ED ou você não o fez comentários
Exercício 3:
Quando a JVM julgar necessária, ela vai compilar o código que é muito executado para instruções na�vas da plataforma,tendo em vista que isso vai provavelmente melhorar a performance da sua aplicação. Como é chamado este compilador?
A)
Optimal Compiler
B)
Debug Compiler
C)
Start Compiler
D)
Free Compiler
E)
JIT – Just in Time Compiler
O aluno respondeu e acertou. Alternativa(E)
Comentários:
Essa disciplina não é ED ou você não o fez comentários
Exercício 4:
Assinale qual a alternativa completa o código a seguir em Java:
 class MeuPrograma {
 public static void main(String[] args) {
 System.out.____________ ("Minha primeira aplicação Java!!");
 }
}
 
A)
inprint
B)
Println
C)
readln
D)
gech()
E)
export
O aluno respondeu e acertou. Alternativa(B)
Comentários:
Essa disciplina não é ED ou você não o fez comentários
Exercício 5:
Associe: 
( ) JVM A – Ambiente de execução JAVA.
( ) JRE B – Apenas a virtual machine.
( ) JDK C – Destinado aos desenvolvedores e pertencente ao JAVA SE.
 
A)
A, B, C
B)
A, C, B
C)
B, A, C
D)
B, C, A
E)
C, A, B
O aluno respondeu e acertou. Alternativa(C)
Comentários:
Essa disciplina não é ED ou você não o fez comentários

Mais conteúdos dessa disciplina