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.

25 julho 2006

Versão do miniJava

Pessoal;

Andei olhando e vi que alguns de vcs ainda usam uma versão antiga de miniJava. É interessante vcs sempre baixarem a versão mais atual do miniJava, pois elas sofreram algumas alterações. Ainda estamos trabalhando no controle de versões sobre o miniJava. Portanto, fiquem espertos quanto à algumas alterações.

19 julho 2006

Envio de novas listas e exercícios

Pessoal;

Para facilitar minha vida e acelerar a correção das listas e exercícios de vcs, queria que vcs fizessem o seguinte:

Ao iniciarem a solução, vcs criassem um pacote nomeado com seu respectivo login, daí era só criar as classes dentro dele.

Me enviar um único arquivo zipado contendo (o nome do aquivo zipado deve ser o login de vcs):
  • Arquivos .java que vcs criaram;
  • O .jar (biblioteca que vc inclui no projeto) do miniJava. Isso é para evitar problemas de eu corrigir o projeto de vcs com uma versão mais nova do miniJava;
  • O .jar de qualquer outra classe a ser adicionada no projeto, se existir (o conta.jar da primeira lista por exemplo);
No mais, é só isso.

Envio de novas listas e exercícios

Pessoal;

Para facilitar minha vida e acelerar a correção das listas e exercícios de vcs, queria que vcs fizessem o seguinte:

Ao iniciarem o projeto, vcs criassem um pacote nomeado com seu respectivo login, daí era só criar as classes dentro dele.

Me enviar um único arquivo zipado contendo:
  • Arquivos .java que vcs criaram;
  • O .jar (biblioteca que vc inclui no projeto) do miniJava. Isso é para evitar problemas de eu corrigir o projeto de vcs com uma versão mais nova do miniJava;
  • O .jar de qualquer outra classe a ser adicionada no projeto, se existir (o conta.jar da primeira lista por exemplo);
No mais, é só isso.

18 julho 2006

Notas

Pessoal;

Já terminei de corrigir as mini provas... as notas estão no meu public (www/~grso). Essa semana vou colocar a nota das listas.
Já podem vir pegar as mini provas comigo.

17 julho 2006

Pendência

Pessoal;

Sei que estou devendo o resultado da mini-prova de vcs e da lista1. Quanto à mini-prova eu já corrigi, e vou formalizar a nota ainda hoje... assim que fizer um layout decente para meu public... hehehe... a respeito das listas, vou corrigir ainda essa semana., e acredito que até sexta vcs já estarão com as notas.

10 julho 2006

Atualização do miniJava

Pessoal,

O miniJava foi atualizado e agora está suportanto ações nos menu... só queria pedir desculpas pela demora em responder algumas dúvidas, é que fiquei sem net o fim de semana inteiro. Mas, qualquer coisa, estou por aqui.... quaisquer dúvidas sobre os menus... basta perguntar...

e já adiantando... quanto ao servidor do cin, é bom vcs se acostumarem a não deixarem nada dependente de acessar o cin de casa no final de semana.. pois, se o servidor cair na sexta a noite, o suporte só coloca ele no ar na segunda. Então, se vcs tiverem algum arquivo que esteja aqui no cin, eu aconselho a enviarem pra o e-mail de vcs, pois isso garante que vcs vão conseguir acessar de casa nos finais de semana. Vcs vão perceber que esse servidor cair é uma coisa bem normal de acontecer... ehehehe

04 julho 2006

Novidades

Pessoal;

Paulo anda recomendando muito aos monitores que acompanhem seus alunos o mais próximo possível... então, resolvi, modificar um pouquinho a minha didática nas aulas de laboratório.

A partir da próxima aula de laboratório vou começar a cobrar os resultados dos exercícios feitos seguindo o roteiro. Para não haver reclamações, vou receber os exercícios por e-mail até a meia noite do dia da aula, passando disso, não vou mais receber exercícios... isso servirá para vcs se acostumarem com as próximas disciplinas (que seguem esse modelo), e para que eu possa encontrar mais facilmente as dificuldades de cada um de vcs.

Vou encontrar uma maneira de avaliar os trabalhos de vcs, mas, lembrando que essa avaliação não contará em nada na nota final da disciplina... mas, aconselho que façam todos os exercícios e me mandem, pois isso ajuda bastante a fixar o conteúdo. Vou mandar esse mesmo informativo por e-mail, pois, acredito que dois de meus monitorandos ainda não se cadastraram no blog... e isso pode prejudicar eles no final.

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

}


}