Como eu conecto minha camada de controle com a de apresentacao?? Por exemplo, eu tenho lá minha GUI com os campos Nome e Cidade, como eu faço pra ser mostrado nesses campos o conteudo da camada de modelo e BD ? Eu tenho que fazer uma chamada da minha camada de modelo na GUI? tipo colocar na GUI… ClientesMod cliente = new ClientesMod() ; ?? ou eu tenho que fazer uma chamada da minha classe de controle? MeuControle controle = new MeuControle(); e daí fazer chamadas atraves dos métodos desse objeto… controle.getnome(codcliente) , get.cidade.(codlciente).
Essa ligação da camada de controle com a de apresentação que eu não entendi direito, porque, eu não tenho que fazer a apresentacao sem que ela conheça nada sobre o modelo? Mas não teria que existir uma instancia do modelo na apresentação ???
Fui claro?? Acho q expliquei tanto que não deu pra entender nada.
Se alguem tiver um exemplo em desktop eu agradeceria, porque eu to fazendo em desktop e se alguem colocar em jsp acho que vai ficar dificil de entender. :???:
Fala kra!!
Eu não sei se entendi mto bem o seu dilema, mas eu costumo tratar telas da seguinte forma…
Eu primeiro desenvolvo a tela, com todos os objetos lá, sejam JTextField, JComboBox, o que for.
Depois eu implemento métodos get para cada componente.
Também separo o acesso ao banco de dados numa outra classe.
E finalmente pra ligar as duas coisas implemento uma terceira classe, que se utiliza dos gets da tela para manipular os objetos a serem exibidos com as informações que ele consegue através da classe que manipula o BD.
É simples, mas pra coisas de pequeno porte, é bem legal.
Abraços!
alguem poderia postar um exemplo?? pode ser algo bem basico, tipo uma tela de cadastro, só com nome e telefone, pra eu ver direito como ela acessa as outras camadas.
Valew!
O que é camada de controle?
Fala FreakShow!!!
Eu fiz um exemplo bem simples e bem pequeno aqui, só pra vc ter uma idéia do que eu quis dizer. Lembrando que a classe Calculadora poderia por exemplo, acessar um BD.
package mvc;
import java.awt.*;
import javax.swing.*;
public class Visualizacao extends JFrame
{
// Itens Manipuláveis
JTextField operador1;
JTextField operador2;
JComboBox operando;
JButton igual;
JTextField resultado;
// Construtor
public Visualizacao()
{
Container contentPane = this.getContentPane();
this.setSize(250,50);
operador1 = new JTextField(2);
operador2 = new JTextField(2);
operando = new JComboBox();
igual = new JButton("=");
resultado = new JTextField(2);
contentPane.setLayout(new GridLayout(1,5));
contentPane.add(operador1);
contentPane.add(operando);
contentPane.add(operador2);
contentPane.add(igual);
contentPane.add(resultado);
resultado.setEnabled(false);
}
public JTextField getOperador1()
{
return operador1;
}
public JTextField getOperador2()
{
return operador2;
}
public JComboBox getOperando()
{
return operando;
}
public JButton getIgual()
{
return igual;
}
public JTextField getResultado()
{
return resultado;
}
}
///////////////////
package mvc;
import java.awt.event.*;
import javax.swing.*;
public class Controlador implements ActionListener
{
Visualizacao tela;
Calculadora calc;
JTextField op1;
JTextField op2;
JComboBox opr;
JTextField res;
public Controlador()
{
tela = new Visualizacao();
calc = new Calculadora();
op1 = tela.getOperador1();
op2 = tela.getOperador2();
opr = tela.getOperando();
res = tela.getResultado();
opr.addItem("+");
opr.addItem("-");
tela.getIgual().addActionListener(this);
tela.show();
}
public void actionPerformed(ActionEvent e)
{
int num1 = Integer.parseInt(op1.getText());
int num2 = Integer.parseInt(op2.getText());
int resultado = 0;
String operacao = (String)opr.getSelectedItem();
if (operacao.equals("+"))
{
resultado = calc.soma(num1,num2);
}
else if (operacao.equals("-"))
{
resultado = calc.subtrai(num1,num2);
}
String resultadoString = (new Integer(resultado)).toString();
res.setText(resultadoString);
}
public static void main (String[] args)
{
Controlador c = new Controlador();
}
}
///////////////////
package mvc;
public class Calculadora
{
public int soma(int num1,int num2)
{
return (num1+num2);
}
public int subtrai(int num1,int num2)
{
return (num1-num2);
}
}
Valeu!!!1
De nada!!!
Foi um tópico que rendeu bastante, e fiquei muito feliz de poder contribuir.
Valeu pelo post e pela iniciativa em trazer um tema legal.
=)