Paradigmas de Programação
Criação e Utilização de Caixas de Selecção
“CheckBox” ou caixa de selecção é um componente gráfico que
permite que o utilizador a marque ou desmarque fornecendo assim,
informação visual sobre o estado actual das opções seleccionadas.
Utiliza-se sempre que a aplicação tem várias opções e o utilizador
deve escolher uma ou mais dessas opções.
Em swing este componente pertence à classe JCheckBox.
Todas as vezes que uma checkbox é marcada ou desmarcada é
executado o método itemStateChanged (ItemEvent e) que pertence
ao interface ItemListener.
2009/2010
Tópicos das aulas Teórico Práticas
Helena Leitão & Dulce Mota
1
Paradigmas de Programação
Exemplo:
Criar uma aplicação que apresente uma janela com caixas de selecção
com nomes de cidades, em que o utilizador escolhe a cidade que
pretende visitar.
De acordo com a caixas de selecção seleccionada assim aparece uma
imagem sugestiva da cidade escolhida. Quando a caixa de selecção é
desactivada a imagem respectiva também o é.
2009/2010
Tópicos das aulas Teórico Práticas
Helena Leitão & Dulce Mota
2
Paradigmas de Programação
Código java : teremos como componentes gráficos uma etiqueta
colocada a norte, um array de caixas de selecção com os nomes das
cidades colocado no centro e um array de etiquetas com as imagens
das cidades colocado no sul.
Os ficheiros com as imagens das cidades encontram-se no directório
imagens e o nome é dado pelo nome da cidade seguido da extensão
.GIF (imagens\Paris.GIF)
A seguir encontra-se um método main possível para a aplicação:
public static void main(String [] args){
JFrame janela=new JanelaCheckBox("Uso de CheckBox");
janela.setSize(500,250);
janela.setVisible(true);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
2009/2010
Tópicos das aulas Teórico Práticas
Helena Leitão & Dulce Mota
3
Paradigmas de Programação
public class JanelaCheckBox extends JFrame{
private JCheckBox[] chb=new JCheckBox[4];
private JLabel[] lab=new JLabel[4];
private JLabel labnorte;
private static String[] cidades={"Paris","Londres","Toquio","S_Francisco"};
public JanelaCheckBox(String s) {
super(s);
Container cont=this.getContentPane();
labnorte=new JLabel("Que cidades quer visitar ?");
int i=0;
for(String s1 : cidades){
String nome="imagens\\"+s1+".GIF"; // string com o caminho do fich.
Icon ic=new ImageIcon(nome); //criação das imagens
//criação das etiquetas com as imagens não activas
lab[i]=new JLabel(); lab[i].setIcon(ic); lab[i].setEnabled(false);
chb[i]=new JCheckBox(s1);
//criação das checkBoxs
i++;
}
2009/2010
Tópicos das aulas Teórico Práticas
Helena Leitão & Dulce Mota
4
Paradigmas de Programação
JPanel p1= new JPanel();// criação do painel p1
JPanel p2=new JPanel(); // criação do painel p2
for(JCheckBox c :chb)
p1.add(c);
// adicionar as checkboxs ao p1
for(JLabel l :lab)
p2.add(l);
// adicionar as etiquetas ao p2
// adicionar a etiqueta labnorte e os 2 paineis ao “content pane”
cont.add(labnorte,BorderLayout.NORTH);
cont.add(p1,BorderLayout.CENTER);
cont.add(p2,BorderLayout.SOUTH);
//criar objecto de escuta
CheckBoxEscuta cbe=new CheckBoxEscuta();
//associar o objecto de escuta com cada checkbox
for(JCheckBox c :chb)
c.addItemListener(cbe);
}//fecha construtor da janela
2009/2010
Tópicos das aulas Teórico Práticas
Helena Leitão & Dulce Mota
5
Paradigmas de Programação
//classe interna – classe do objecto de escuta
class CheckBoxEscuta implements ItemListener {
public void itemStateChanged(ItemEvent e){
int i=0;
while(chb[i]!=e.getSource())
i++;
// encontrada a checkbox geradora do evento
//verifica se a checkbox foi marcada ou desmarcada
if(chb[i].isSelected()){
lab[i].setEnabled(true); // torna activa a etiqueta correspondente
}
else lab[i].setEnabled(false);//torna inactiva a etiqueta
}// fecha método
} //fecha classe escuta
}//fecha classe janela
A2009/2010
Tópicos das aulas Teórico Práticas
Helena Leitão & Dulce Mota
6
Download

Criação e Utilização de Caixas de Selecção Paradigmas de