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

}


}




30 junho 2006

API de Java 1.5.0 em Português

Bom pessoal, pra quem tem dificuldades na leitura em inglês, tenho uma pequena novidade que pode ajudar muita gente... a API de java 1.5.0 (ou 5.0 que é como a sun prefere chamar a nova plataforma) foi, ou está sendo, traduzida para o português.

Foi anunciado o projeto de tradução completa da documentação e manuais do JDK 5.0 para português brasileiro. Durante o Sun Tech Days mais de 140 aderiram ao projeto. O projeto foi iniciado por Hardie (Sun) e Flávio Bianchi a aproximadamente 1 ano. Maiores informações:
https://jdk5-api-pt-br.dev.java.net/

Fonte:
https://jdk5-api-pt-br.dev.java.net/servlets/NewsItemView?newsItemID=3585

o endereço para a API em português encontra-se na área de links ao lado.

29 junho 2006

Classe vista em sala de aula

Pessoal, essa foi a classe que Paulo me mandou.. ele disse que ela foi vista em sala de aula. Tô postando aqui pra, se alguém tiver alguma dúvida, basta me perguntar...



import br.ufpe.cin.miniJava.gui.*;

public class MinhaJanela extends Window {
TextField campoNumeroDigitado;
TextField campoResultado;
Button botaoOK;
Button botaoExit;

MinhaJanela() {
Label labelNumeroDigitado;
Label labelResultado;

this.setTitle("Tela Principal");
this.setSize(1000,500);

campoNumeroDigitado = new TextField(6);
this.include(campoNumeroDigitado,100,20);

campoResultado = new TextField(6);
this.include(campoResultado,100,45);

labelNumeroDigitado = new Label("Número");
this.include(labelNumeroDigitado,40,20);

labelResultado = new Label("Resultado");
this.include(labelResultado,40,45);

botaoOK = new Button("Calc");
botaoOK.setSize(80,40);
this.include(botaoOK,250,20);

botaoExit = new Button("Sair");
botaoExit.setSize(80,40);
this.include(botaoExit,200,80);
}

public void clickEvent(Component c) {
int numeroDigitado;
int resultado;
if (c == botaoOK) {
numeroDigitado = campoNumeroDigitado.getInt();
resultado = numeroDigitado * 2;
campoResultado.setText(resultado + "");
campoNumeroDigitado.setText("");
} else if (c == botaoExit) {
System.exit(0);
}


// resultado = campoResultado.setInt();
// resultado = campoResultado.getInt();
// campoResultado = resultado;
// System.out.print("Funcionou!"); // Depuração
}
}

Nascimento do blog

Bom pessoal...

Vou tentar usar esse blog com vcs, pois acho que assim vai ser mais fácil pra mim e para vcs tirarem dúvidas. Vou pensar depois em convidar outras pessoas (não necessariamente monitores) porque toda ajuda é bem vinda.
Minha idéia é dar o máximo de auxílio para vcs. Preferi colocar o blog só para usuarios cadastrados para evitar postagens de pessoas que não são sequer da ufpe.
Nesse blog vou tentar postar notícias interessantes para vcs e tb vai aumentar a possibilidade que tenho de tirar dúvidas com vcs. Como disse no convite, ainda não sou nenhum profissional no uso de blogs, por isso, qualquer sugestão é muito bem vinda.

Por favor, tentem usar o blog o máximo possível... pois, responder por e-mail é um tanto quanto demorado.

No mais, vou ficando por aqui mesmo... quero só ver que vai ser o primeiro a postar aqui... ehehehehe...


abraço a todos...