Pessoal,eu estou desenvolvendo uma aplicação extremamente simples com os conceitos de MVC(view model controller) para a faculdade mas estou com muita dificuldade
a principio eu apenas quero que meu botão “sair” feche a aplicação,porem o ActionListener nao pode estar na classe da Interface e sim numa classe de controle
eu sei que preciso utilizar os comandos observer e observable mas nao consigo entender como isso funciona,alguem ai pode me ajudar ?
essa é a interface
package view;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Observable;
import java.util.Observer;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
//implements ActionListener
public class Interface extends JFrame implements Observer {
//criação das labels
private JPanel Painel = new JPanel();
private JLabel LblNProduto = new JLabel("Nome do Produto : ");
private JLabel LblCodigo= new JLabel("Codigo do Produto: ");
private JLabel LblFabricante= new JLabel("Fabricante: ");
private JLabel LblQtdEstoque = new JLabel("Quantidade em Estoque: ");
private JLabel LblDataReposicao = new JLabel("Data da ultima reposição: ");
private JLabel LblDescricao = new JLabel("Descrição do Produto: ");
//criação das text fields
private JTextField TxtNomeProduto = new JTextField();
private JTextField TxtCodigo = new JTextField();
private JTextField TxtFabricante= new JTextField();
private JTextField TxtQtdEstoque = new JTextField();
private JTextField TxtDataReposicao = new JTextField();
private JTextArea TxtDescricao = new JTextArea();
private JButton BtnAdd = new JButton("Adicionar Produto");
private JButton BtnRenovar = new JButton("Adicionar unidade ao Estoque");
private JButton BtnRemoverUnidade = new JButton("Remover Unidade");
private JButton BtnRemoverProduto = new JButton("Remover Produto");
private JButton BtnSair = new JButton("Sair");
Interface(){
setResizable(false);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE); //fecha programa ao fechar janela
setTitle("Controle de Estoque");
setSize(570,500);
this.setContentPane(Painel);
Painel.setSize(620, 480);
Painel.setVisible(true);
Painel.setLayout(null);
// adicionando labels
Painel.add(LblNProduto);
Painel.add(LblCodigo);
Painel.add(LblFabricante);
Painel.add(LblQtdEstoque);
Painel.add(LblDataReposicao);
Painel.add(LblDescricao);
Painel.add(TxtNomeProduto);
Painel.add(TxtCodigo);
Painel.add(TxtFabricante);
Painel.add(TxtQtdEstoque);
Painel.add(TxtDataReposicao);
Painel.add(TxtDescricao);
Painel.add(BtnAdd);
Painel.add(BtnRemoverProduto);
Painel.add(BtnRenovar);
Painel.add(BtnRemoverUnidade);
Painel.add(BtnSair);
//os valores do setbound são (eixo "X") (eixo "Y") (largura) (altura)
LblNProduto.setBounds(20, 20, 110, 30);
LblCodigo.setBounds(335, 20, 110, 30);
LblFabricante.setBounds(20, 60, 110, 30);
LblQtdEstoque.setBounds(335, 60, 145, 30);
LblDataReposicao.setBounds(20, 100, 160, 30);
LblDescricao.setBounds(20, 140, 160, 30);
TxtNomeProduto.setBounds(170, 25, 150, 25);
TxtCodigo.setBounds(450, 25, 100, 25);
TxtFabricante.setBounds(170, 60, 150, 25);
TxtQtdEstoque.setBounds(480, 60, 68 ,25);
TxtDataReposicao.setBounds(170, 100, 150, 25);
TxtDescricao.setBounds(25, 180, 520, 100); //essa é uma JTextArea
BtnAdd.setBounds(25, 300, 150, 25);
BtnRemoverProduto.setBounds(25, 340, 150, 25);
BtnRenovar.setBounds(200, 300, 220, 25);
BtnRemoverUnidade.setBounds(200, 340, 220, 25);
BtnSair.setBounds(430, 300, 120, 25);
}
public static void main(String[] args) {
new Interface();
}
@Override
public void update(Observable arg0, Object arg1) {
// TODO Auto-generated method stub
}
}
Essa é a classe de controle(nao sei nem por onde começar)
package Controler;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Observable;
public class Controlador extends Observable implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
}
eu quero que essa classe controle o “btnSair” da outra classe atraves do observer
alguem ai pode me ajudar ? obrigado