quarta-feira, 26 de outubro de 2011

Aula 13 - 01.11.2011 (Não-presencial)


Caros alunos,

Comunico a todos que excepcionalmente nesta terça-feira, dia 01.11.2011, precisarei me ausentar de Porto Alegre para tratar de assuntos familiares, de forma que combinei com o prof. Jaime a realização de uma aula não-presencial. Como vocês estão cheios de trabalho para fazer sugiro que foquem nesses trabalhos e façam como alguns alunos que estão fazendo, ou seja, enviando as questões por e-mail:
  • 2 exercícios da apostila Caelum:
    • 1 que deveria ser entregue ontem - poucos entregaram;
    • Outro a ser entregue no dia 01.11.
    • Porém, vou dar mais um prazo, até dia 08.11 para entregar os 2.
  • Trabalho final da disciplina.
    • Comecem a desenhar as telas e a tem utilizar o padrão MVC no projeto.
Agradeço desde já a compreensão e me coloco à disposição para retornar os e-mails enviados.

domingo, 9 de outubro de 2011

Aula 10 - 11.10.2011

Prova
Conferência!!

Trabalho de Recuperação
Baseado em http://www.caelum.com.br/download/caelum-java-objetos-fj11.pdf

Fase 1:
  • Ler, aprender e fazer todos os códigos da apostila da página 14 até página a 43 (29 pgs).
  • Responder todos os exercícios que estão nos itens 4.11, 4.12 e 4.13 e entregar até 18.10.2011.
Fase 2:
  • Ler, aprender e fazer todos os códigos da apostila da página 49 até página a 69 (20 pgs).
  • Responder todos os exercícios que estão nos itens 6.8 e 6.9 e entregar até 01.11.2011.

segunda-feira, 19 de setembro de 2011

Aula 8 - 27.09.2011

Palestra
Neste dia, haverá uma palestra no início da aula sobre SOA - Service-oriented Arquitecture (http://pt.wikipedia.org/wiki/Service-oriented_architecture), ministrada pelo sr. Robson Vargas Farias.


Dicas de Java para auxiliar nas atividades:

1) Como obter o índice de um JComboBox:

int i = jComboBox1.getSelectedIndex(); //lembrar que começa do zero.


2) Como converter texto em data e vice-versa:


terça-feira, 13 de setembro de 2011

Aula 7 - 13.09.2011 - Dicas

Para utilizar um JTextPane centralizado:


        StyledDocument doc = jTextPane1.getStyledDocument();
        SimpleAttributeSet center = new SimpleAttributeSet();
        StyleConstants.setAlignment(center, StyleConstants.ALIGN_CENTER);
        doc.setParagraphAttributes(0, doc.getLength(), center, false); 

segunda-feira, 12 de setembro de 2011

Aula 7 - 13.09.2011

Exercícios para hoje: 
1) Faça um programa que permite o usuário digitar o nome de uma pessoa e 4 notas. Ao clicar em um botão, o sistema deve mostrar a média das 4 notas.

2) Faça um programa leia um nome e que possua as questões abaixo escritas em JLabel, cada uma com 2 JRadioButtons contendo as respostas SIM e NÃO. Ao final, o usuário deve pressionar um botão que irá dar a seguinte mensagem:
> 3 respostas SIM: "Parabéns [nome]!!! Você é uma pessoa feliz".
=3 respostas SIM: "[nome], você está no limite da felicidade. Avalie a si mesmo."
<3 respostas SIM: "[nome], você parece estar com a autoestima baixa. Verifique."

Perguntas:

1 - Você gosta de si mesmo?
2 - Você é otimista?
3 - Você gosta do mundo?
4 - Você tem muitos amigos?
5 - Você pratica esportes?
6 - Você escuta música?


3) Faça um programa que leia um valor em uma moeda (R$, U$ ou €) e uma cotação sobre esta moeda e converta para a moeda especificada. Usar JComboBox para escolher o tipo de moeda.

4) Faça um programa que calcule o consumo médio de um veículo, dada a distância percorrida e a quantidade de litros consumidos.

5) Faça um programa que permite o usuário digitar o nome de uma pessoa e sua data de nascimento. Ao clicar em um botão, o sistema mostra o signo da pessoa.

6) Ler o nome, o sexo, o estado civil e a data de nascimento de uma pessoa e apresentar a seguinte mensagem:
"Boa noite Senhor [nome]" ou "Boa noite Senhora [nome]", dependendo de seu sexo.
Se tiver menos de 18 anos, "Boa noite [nome]"
Se for mulher, for maior de 18 anos, mas for solteira, "Boa noite Senhorita [nome]"
Se for mulher e for maior de 55 anos, "Boa noite Dona [nome]"
Se for homem e for maior de 60 anos, "Boa noite Seu [nome]"
Em todas as situações mostrar ao final "Sua idade é x anos".
Adicionar as mensagens a um JList para ficar como histórico.

7) Faça um programa que leia duas datas com hora, minuto e segundo e informe os seguintes dados:
 - Cálculo da idade em anos, meses, dias, horas, minutos e segundos entre as datas informadas.
 - Faça com que exista um botão que alimente a segunda data com a data e hora do computador, para evitar que o usuário precise digitá-las.

8) Faça um programa que calcule o IMC (índice de massa corporal) com base nos dados:
IMC = peso / (altura)²
Condição IMC em (M)ulheres e (H)omens, respectivamente:

Abaixo do peso
M < 19,1
H < 20,7

Peso ideal
Mulheres 19,1 - 25,8
Homens 20,7 - 26,4

Acima disto considere como obeso.

9) Faça um programa simples de conversão de temperatura: Celsius, Kelvin, Fahrenheit. Buscar as fórmulas na Internet e conferir se estão corretas utilizando o próprio programa.

10) Simular a venda de produtos, onde o usuário escolhe alguns entre 10 produtos pré-listados com JLabels para o nome e o valor do mesmo e um JCheckBox para a escolha do produto. Após, digita a quantidade a ser comprada em um JTextField. Ao final, quando o usuário clicar em um JButton, o programa deve apresentar o valor total da venda somente para os produtos que foram marcados no JCheckBox.

11) Faça um programa que solicite a idade de 10 pessoas usando JOptionPane e em seguida mostre:
A média das idades, a maior idade e a menor idade.

12) Faça um programa em java que a manipulação de um JComboBox modifique o texto de uma label.
Coloque um campo de texto e dois botões, um para adicionar novos itens ao JComboBox e outro para remover itens.

segunda-feira, 29 de agosto de 2011

Aula 6 - 06.09.2011

Apresentação de Trabalho - Design Patterns.



NOME

Pattern

ANDRE LUIS DOS SANTOS

proxy

AQUILES FLORES CARVALHO

memento

CARLOS LUIZ BARBOSA RIBEIRO

proxy

DIEGO BARBOZA MACIEL

facade

GUILHERME FRANCESCHINI MALUF

interpreter

JOSUE HENNEMANN VERGARA DE SOUZA

builder

JULIANO DA SILVEIRA RAMOS

JULIANO SANTOS REZENDE

visitor

KELLEN SCHRODER DEVIT

factory method

NELSON GUERREIRO ALVES

observer

PIETRO TONON SCHAFF

builder

RENAN CHILANTI

adapter

RODRIGO DA SILVA MARTINS

prototype

Aula 5 - 30.08.2011

Exercício
Desenvolver uma View e um Controller CRUD para o Model UF:
 - codigo: String
 - nome: String
 - pais: Pais

Utilizar as classes JTextField para os atributos codigo e nome e um JComboBox para o pais.

Exemplo de tela:

terça-feira, 23 de agosto de 2011

Aula 4 - 23.08.2011

Exercício: 
 - Criar tela de menu principal conforme imagem abaixo:





 - Criar classe Pais.java (atributos codigo, nome e obs)
    * Métodos set's e get's

 - Criar classe PaisCtrl.java (atributo static ArrayList<Pais> paises)
    * Métodos add(), remove(), getAll(), get()

 - Criar a classe JPais.java (conforme imagem acima).

LookAndFeel
import java.awt.*;
import javax.swing.*;

public class LookAndFeelUtil {

   public static final String JAVA_LAF = "javax.swing.plaf.metal.MetalLookAndFeel";
   public static final String WIN_LAF = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
   public static final String LINUX_LAF = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
   public static final String MAC_LAF = "com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel";

  
   public static void change(Component c, String laf) {
      try {
         UIManager.setLookAndFeel(laf);
         SwingUtilities.updateComponentTreeUI(c);
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}

segunda-feira, 22 de agosto de 2011

Aula 4 - 23.08.2011

Menu Principal em Java AWT/Swing


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JMenuPrincipal extends JFrame {

public JMenuPrincipal() {
   initComponents();
}

private void initComponents() {
setTitle("Sistema de Cadastro");
setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// Cria JMenuBar...
JMenuBar jMenuBar = new JMenuBar();
JMenu jMenu1_1 = new JMenu("Cadastros");
JMenuItem jMenuItem1_1_1 = new JMenuItem("Pessoas");
JSeparator jSeparator1 = new JSeparator();
JMenuItem jMenuItem1_1_2 = new JMenuItem("Países");
jMenuItem1_1_2.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
abrirPaises();
}
});
JMenuItem jMenuItem1_1_3 = new JMenuItem("Estados");
JMenuItem jMenuItem1_1_4 = new JMenuItem("Cidades");
JSeparator jSeparator2 = new JSeparator();
JMenuItem jMenuItem1_1_5 = new JMenuItem("Sair");

jMenuBar.add(jMenu1_1);
jMenu1_1.add(jMenuItem1_1_1);
jMenu1_1.add(jSeparator1);
jMenu1_1.add(jMenuItem1_1_2);
jMenu1_1.add(jMenuItem1_1_3);
jMenu1_1.add(jMenuItem1_1_4);
jMenu1_1.add(jSeparator2);
jMenu1_1.add(jMenuItem1_1_5);

JMenu jMenu1_2 = new JMenu("Consultas");
jMenuBar.add(jMenu1_2);
JMenuItem jMenuItem1_2_1 = new JMenuItem("Pessoas");
JMenuItem jMenuItem1_2_2 = new JMenuItem("Países");
JMenuItem jMenuItem1_2_3 = new JMenuItem("Estados");
JMenuItem jMenuItem1_2_4 = new JMenuItem("Cidades");

jMenu1_2.add(jMenuItem1_2_1);
jMenu1_2.add(jMenuItem1_2_2);
jMenu1_2.add(jMenuItem1_2_3);
jMenu1_2.add(jMenuItem1_2_4);

jMenuItem1_1_5.setActionCommand("EXIT");
jMenuItem1_1_5.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
sair();
}
});

JMenu jMenu2 = new JMenu("Ajuda");
JMenuItem jMenuItem2_1 = new JMenuItem("Sobre...");
jMenu2.add(jMenuItem2_1);
jMenuBar.add(jMenu2);

this.setJMenuBar(jMenuBar);

// Cria JToolBar...
JToolBar jToolBar1 = new JToolBar();
jToolBar1.setRollover(true);

JButton jButton_Sair = new JButton("Sair");
jButton_Sair.setFocusable(false);
jButton_Sair.setBorderPainted(false);
jToolBar1.add(jButton_Sair);

jButton_Sair.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
sair();
}
});

jToolBar1.setBounds(0, 0, 800, 30);
getContentPane().add(jToolBar1);

int w = 800;
int h = 600;
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width - w) / 2, (screenSize.height - h) / 2, w, h);
repaint();
}

private void abrirPaises() {
new JPaises(this, true).setVisible(true);
}

private void sair() {
if (JOptionPane.showConfirmDialog(this, "Deseja mesmo sair?") == JOptionPane.YES_OPTION)
System.exit(0);
}

public static void main(String[] args) {
//JFrame.setDefaultLookAndFeelDecorated(true);
JMenuPrincipal m = new JMenuPrincipal();
m.setVisible(true);
}
}


domingo, 14 de agosto de 2011

Aula 3 - 16.08.2011

ActionListener

//Anonymous inner class listener 
b1.addActionListener(new ActionListener() {
  @Override
  public void actionPerformed(ActionEvent e) {
     // Coloque seu código aqui...             
  }
});

--------------

import java.text.*;
import javax.swing.*;
import java.awt.event.*;

public class Calculadora extends JFrame {

   private JTextField v1, v2;
   private JButton b1;
  
   public Calculadora() {
      initComponents();
   }

   private void initComponents() {
      setTitle("Calculadora");
      setBounds(100, 100, 400, 400);
      setLayout(null);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

      v1 = new JTextField();
      v1.setBounds(10, 10, 60, 23);
      v2 = new JTextField();
      v2.setBounds(10, 40, 60, 23);

      b1 = new JButton("Somar");
      b1.setBounds(10, 70, 90, 23);
     
      b1.addActionListener(new ActionListener() {         
         @Override
         public void actionPerformed(ActionEvent e) {
            Float _v1 = Float.valueOf(v1.getText());
            Float _v2 = Float.valueOf(v2.getText());
            Float r = _v1 / _v2;           

            DecimalFormat df = new DecimalFormat("0.##");
            JOptionPane.showMessageDialog(null, df.format(r));
         }
      });   
     
      add(v1);
      add(v2);
      add(b1);
   }

   public static void main(String[] args) {
      Calculadora c = new Calculadora();
      c.setVisible(true);
   }
}



--------------

Trabalho: Design Patterns

domingo, 7 de agosto de 2011

Aula 2 - 09.08.2011

Listeners

 - Listeners são a forma como se adiciona ação aos componentes AWT/Swing.
 - Um Listener permite 'escutar' eventos gerados pelo sistema (clique ou movimento de mouse, pressionar tecla do teclado, etc).

Links interessantes:


Tabela de Componentes x Listener:
Component Action Listener Caret Listener Change Listener Document Listener, Undoable Edit Listener Item Listener List Selection Listener Window Listener Other Types of Listeners
button




checked
 




checked
 




checked
     
check box




checked
 




checked
 




checked
     
color chooser    




checked
         
combo box




checked
     




checked
     
dialog            




checked
 
editor pane  




checked
 




checked
      hyperlink
file chooser




checked
             
formatted text field




checked





checked
 




checked
       
frame            




checked
 
internal frame               internal frame
list          




checked
  list data
menu               menu
menu item




checked
 




checked
 




checked
    menu key menu drag mouse
option pane                
password field




checked





checked
 




checked
       
popup menu               popup menu
progress bar    




checked
         
radio button




checked
 




checked
 




checked
     
slider    




checked
         
spinner    




checked
         
tabbed pane    




checked
         
table          




checked
    table model table column model cell editor
text area  




checked
 




checked
       
text field




checked





checked
 




checked
       
text pane  




checked
 




checked
        hyperlink
toggle button




checked
 




checked
 




checked
     
tree                 tree expansion tree will expand tree model tree selection
viewport (used by scrollpane)    




checked
           

terça-feira, 2 de agosto de 2011