monitoria IP 2006-1

Blog voltado aos monitorandos de IP de 2006-1 do curso de ciências da computação e engenharia da computação.

01 julho 2006

resposta da Dúvida: radionButton

pessoal, segue aqui uma simples explicação sobre a criação de radionButtons.


- na verdade o que deve ser criado é um radionButtonGroup, traduzindo... um grupo de radionButton

- a seguir vcs devem inserir novos radionButtons, porém, cada radionButton tem um nome identificador (que irá aparecer na frente do radionButton), então, quando formos inserir novos elementos, devemos especificar os nomes deles.

radionGroup = new RadioButtonGroup();
radionGroup.addItem ("primeiro_radion");
radionGroup.addItem ("segundo_radion");
radionGroup.addItem ("terceiro_radion");

isso irá mostrar na tela três radionButtons com os nomes especificados na lista de parâmetros (primeiro_radion, segundo_radion, terceiro_radion).

- é interessante que, vcs testem isso bastante.






segue abaixo o código do projeto que fiz... isso vai facilitar o entendimento de vcs.
---------------------------------------------------------


import br.ufpe.cin.miniJava.gui.Button;
import br.ufpe.cin.miniJava.gui.Color;
import br.ufpe.cin.miniJava.gui.Component;
import br.ufpe.cin.miniJava.gui.Label;
import br.ufpe.cin.miniJava.gui.RadioButtonGroup;
import br.ufpe.cin.miniJava.gui.Window;
import br.ufpe.cin.miniJava.gui.listener.ClickListener;


/**
* pessoal;
*
* É importante que vcs percebam a noção de modulação do programa. Coloquei atributos na minha classe, já que ela
* é uma janela, assim, esses atributos poderão ser vistos em todo os escopo da classe (vistos, acessados e alterados).
*
*/




public class Radio extends Window implements ClickListener{

private RadioButtonGroup radionGroup; //grupo de radion buttons

private Button botao; //botão OK


private Label indicador; //label pra indicar qual radionButton está marcado


private final String[] elementos = new String [] {"VERDE", "AZUL", "PRETO", "VERMELHO"};
//array simples pra preencher os radionsButtons (ele é final pra não poder ser alterado no decorrer do programa)




//constutor

public Radio() {
super(); //chamada ao construtor da super classe (neste caso, Window... já que a minha classe extende de Window)

this.init(); //chamada do método init que irá inserir todos os elementos na window


//setando propriedades da minha classe (que na verdade é uma janela)

this.setTitle("Teste de Radion Button");
this.setSize(600,500);
this.setVisible(true);

}



//método init que insere todos os elementos na windows (this)

private void init(){
this.add(this.getRadionGroup(), 20,20); //inserindo o radionButton group
this.add(this.getBotao(), 40, 350); //inserindo o botão
this.add(this.getIndicador(), 300,100); // inserindo o label indicador

//inserindo ouvintes de acções (clickEvent)

this.botao.addListener(this);
}


//método que retorna o radionButtonGroup devidamente preenchido

public RadioButtonGroup getRadionGroup(){
if(this.radionGroup == null){
this.radionGroup = new RadioButtonGroup();
for(String elem : this.elementos){ //esse for é só pra preencher os textos dos radionButtons
this.radionGroup.addItem(elem);
}
this.radionGroup.setSize(200, 200);
this.radionGroup.setVisible(true);
}
return this.radionGroup;
}


//método que retorna o label indicador de cor selecionada

public Label getIndicador(){
if(this.indicador == null){
this.indicador = new Label();
this.indicador.setText("");
this.indicador.setSize(80,30);
this.indicador.setPosition(200,20);
this.indicador.setVisible(true);
}
return this.indicador;
}


//método que retorna o botão

public Button getBotao(){
if(this.botao == null){
this.botao = new Button();
this.botao.setSize(80,30);
this.botao.setVisible(true);
this.botao.setText("OK!");
}
return this.botao;
}


//ação associada ao botão OK!

public void clickEvent(Component c){
if(c.equals(this.botao)){ // testando para ver se a ação que eu recebi foi do botão OK!
int indice = this.radionGroup.getSelectedIndex(); //pegando o índice do meu radioButton selecionado

if(indice == 0){
this.indicador.setText("VERDE"); //setando(mudando) o texto do label
this.indicador.setForeground(new Color(0,255,0)); //setando(mudando) a cor do texto do label
}
if(indice == 1){
this.indicador.setText("AZUL"); //setando(mudando) o texto do label
this.indicador.setForeground(new Color(0,0,255)); //setando(mudando) a cor do texto do label
}
if(indice == 2){
this.indicador.setText("PRETO"); //setando(mudando) o texto do label
this.indicador.setForeground(new Color(0,0,0)); //setando(mudando) a cor do texto do label
}
if(indice == 3){
this.indicador.setText("VERMELHO"); //setando(mudando) o texto do label
this.indicador.setForeground(new Color(255,0,0)); //setando(mudando) a cor do texto do label
}
/**OBS.: o setForeground pede uma cor como parâmetor(vcs podem verificar isso na API do miniJava),
* então, o que fiz foi criar uma nova cor na lista de parâmetros mesmo. Os inteiros que
* passo para a criação da cor obedecem ao padão RGB (red, green, blue), está melhor
* especificados na API
*/

}
}


public static void main(String[] args) {


new Radio(); // como meu construtor faz tudo(inclusive mostrar a janela na tela),
então só preciso chamá-lo aqui

}


}




2 Comments:

  • At 10:22 AM, Blogger Unknown said…

    Rodrigo, me cadastrei quase agora, com um pouco de atraso.. mals ae. Eu fiz a calculadora sem o radio button e com um Label só. Faço outra com o Radio também?

    Flw

     
  • At 9:22 AM, Blogger Gleibson Oliveira dartanham said…

    pode fazer e mandar pra mim... ou então me mostrar nos laboratórios mesmo.... é bom vc fazer pq já se acostuma com esses componentes (radionButton), pq muita gente tá com dúvida....


    qualquer coisa, tô por aqui pra tirar dúvidas....

    té +

     

Postar um comentário

<< Home