Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Este módulo aborda a criação de componentes visuais utilizando a biblioteca SWING e tratamento de eventos. As APIs de interface gráfica do Java favorecem, ao máximo, lema de portabilidade da plataforma Java. 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) { "Ola Swing!"); primeiro argumento recebido pelo método showMessageDialog indica qual é o componente pai (no caso, null, porque não temos mais componentes); segundo indica a mensagem a ser exibida. Há outro método sobrecarregado onde se pode configurar título da janela, tipo de mensagem ou até í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:");// 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 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 formulário simples, precisa-se colocar 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); método pack() de JFrame, chamado acima, serve para redimensionar o frame para um tamanho adequado baseado nos componentes que ele tem. E 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 usuário fechar a janela.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) Para ações diferenciadas como, por exemplo, recuperar 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 mouse, dentre outras. Em continuidade ao formulário, propõe-se 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 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 // adiciona o botao ao JPanel panel.add(button); Isso acrescentará botão ao formulário. Mas para além disto, 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 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 botão for clicado, pegue-se o texto digitado pelo usuário e exiba-se na tela (por meio do JOptionPane), método, fica desta forma: public void actionPerformed(ActionEvent e) { // pega o texto do JTextFieldString texto = textField.getText(); // exibe usando o JOptionPane texto); // aqui usamos o frame como componente pai do messageDialog } Para finalizar, indica-se que esta ação (ActionListener) deve ser disparada quando 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, próprio Formulário, this): button.addActionListener(this); Exercício 1: Ao utilizar teclado ou mouse para executar uma ação em uma interface gráfica, cria-se um objeto especial que, tal como outros, possui atributos e métodos passíveis de manipulação pelos programas. Qual nome destes eventos e como/quando eles são manipulados? A) MouseListener é relativo aos eventos gerados pelo teclado. KeyListener diz respeito aos eventos gerados pelo mouse quando é clicado, entre na área de um componente, sai da área do componente etc. ActionListener refere-se aos eventos de ação como, por exemplo, clique do mouse sobre um botão. B) MouseListener diz respeito aos eventos gerados pelo mouse quando é clicado, entre na área de um componente, sai da área do componente etc. KeyListener é relativo aos eventos gerados pelo teclado. ActionListener refere-se aos eventos de ação como, por exemplo, clique do mouse sobre um botão. C)MouseListener diz respeito aos eventos gerados pelo mouse quando é clicado, entre na área de um componente, sai da área do componente etc. KeyListener é relativo aos eventos gerados pelo mouse. ActionListener refere-se aos eventos de ação como, por exemplo, clique do mouse sobre um botão. D) MouseListener refere-se aos eventos de ação como, por exemplo, clique do mouse sobre um botão. KeyListener é relativo aos eventos gerados pelo teclado. ActionListener diz respeito aos eventos gerados pelo mouse quando é clicado, entre na área de um componente, sai da área do componente etc. E) MouseListener diz respeito aos eventos gerados pelo mouse quando é clicado, entre na área de um componente, sai da área do componente etc. KeyListener refere-se aos eventos de ação como, por exemplo, clique do mouse sobre um botão. ActionListener é relativo aos eventos gerados pelo teclado. Exercício 2: Todo componente Swing deve ser adicionado a um contêiner (Container) que administrará agrupamento e exibição dos mesmos. Qual das alternativas está correta: JLabel label = new JLabel("Seu nome:"); JTextField textField = new JTextField(20); JPanel panel = new JPanel(); add.panel(label); add.panel(textField), B) JLabel label = new JLabel("Seu nome:"); JTextField textField = new JTextField(20); JPanel panel = new JPanel(); panel.add(label);C) JLabel label = new JLabel("Seu nome:"); JTextField textField = new JTextField(20); Panel panel = new Panel(); panel.add(label); D) JLabel label = new JLabel("Seu nome:"); JTextField textField = new JTextField(20); JPanel panel = new JPanel(); addPanel(label); addPanel (textField); E) JLabel label = new JLabel("Seu nome:"); JTextField textField = new JTextField(20); JPanel panel = new JPanel(); add(Jlabel); add(JtextField); Exercício 3: Em relação ao Swing para exibir formulário simples, precisa-se colocar Jpanel em uma janela. Utiliza-se aqui a classe JFrame, que representa uma janela simples. Qual das alternativas está correta: A) JLabel label = new JLabel("Seu nome:"); JTextField textField = new JTextField(20); JPanel panel = new JPanel(); panel.add(label); panel.add(textField); Frame frame = new Frame("Meu primeiro formulário"); frame.add(panel); frame.pack(); frame.setVisible(true); B)JLabel label = new JLabel("Seu nome:"); JTextField textField = new JTextField(20); JPanel panel = new JPanel(); panel.add(label); panel.add(textField); JFrame frame = = new JFrame("Meu primeiro formulário"); frame.add(Jpanel); frame.pack(); C) JLabel label = new JLabel("Seu nome:"); JTextField textField = new JTextField(20); JPanel panel = new JPanel(); panel.add(label); panel.add(textField); JFrame frame = new JFrame("Meu primeiro formulário"); Jframe.add(panel); Jframe.pack(); D) JLabel label = new JLabel("Seu nome:"); JTextField textField = new JTextField(20); JPanel panel = new JPanel(); panel.add(label); panel.add(textField); JFrame frame = new JFrame("Meu primeiro formulário"); add.frame(panel); frame.pack(); E) JLabel label = new JLabel("Seu nome:"); JTextField textField = new JTextField(20); JPanel panel = new JPanel(); panel.add(label); panel.add(textField); JFrame frame = new JFrame("Meu primeiro formulário");frame.add(panel); frame.pack(); frame.setVisible(true);

Mais conteúdos dessa disciplina