Objetivo: Interface para cadastramento de produtos.
-
Descrição
Realiza cadastro de produtos
-
Fluxo principal:
Abrir a tela
Informar nome, descrição, quantidade, valor de compra, valor de venda, data de compra, data de início da venda, data de fim da venda. * R01, R02, R04;
No campo categoria, serão exibidas apenas as categorias que estejam dentro da faixa de preço do produto. * M01, R03
Ao clicar em salvar * R01, M02
Fecha a tela
-
Fluxos complementares
Não se aplica
-
Regras de negócio
R01: Todos os campos são obrigatórios
R02: Valor de compra de um produto não pode ser inferior ao valor de venda do mesmo
R03: A categoria do produto deve estar dentro da faixa de preço cadastrada na categoria, tendo como base o preço de venda do produto
R04: A data final de venda tem que ser superior a data de início da venda
-
Métodos(As procedures precisam ser criadas)
M01: Executar procedure pSelCategByPreco
M02: Executar procedure plnsProduto
M03: Executar procedure pDelProduto
M04: Pedir confirmação antes de fechar a tela
-
Exceções
Não se aplica
-
Pré-condições
Não se aplica
-
Pós-condições
Não se aplica
-
Descritivo físico
Nome Campo (Origem do dado) [Tipo] Default Brancos(Sim/Não) {Tam} Consistência
Cod. Produto (Id_produto) [int] - N {10}
Nome (Nm_produto) [varchar] - N {50}
Descricao (Desc_produto) [text] - N {-}
Quantidade (Qtd_produto) [int] - N {5}
Valor Compra (Vlr_produto) [decimal] - N {4,2}
Valor venda (Vlr_venda) [decimal] - N {4,2}
Data compra (Dt_compra) [datetime] - N { - }
Data de inicio (Dt_ini_venda) [datetime] - N { - }
da venda
Data de fim (Dt_fim_venda) [datetime] - N { - }
da venda
Categoria (id_categoria) [int] - N { 2 } * Executar M01
- Botões e links
Botão/Link (Estado inicial) [Condições de habilitaçãp] {Ação}
Salvar ( H ) [* R01] {* M02}
Alterar ( H ) {* M01}
Deletar ( H ) {* M03}
- Informações auxiliares
Categorias cadastradas:
ID Nome Vlr_inicial Vlr_final
1 categoria 1 00.0 10.99
2 categoria 2 11.0 25.99
3 categoria 3 26.0 50.99
4 categoria 4 51.0 99.99
- Acesso à base de dados
Servidor: sqllw01
Database: selecao
Tabelas: tblCategoria
tblProduto
UserName: usrSelecao
Password: 1234
…
Bom, iniciei poucas coisas e espero (se Deus quiser) que esteja ao menos no caminho certo.
public class Produto{
public int id_produto;
public int id_categoria;
public int qtd_produto;
public varchar nm_produto;
public text desc_produto;
public decimal vlr_compra;
public decimal vlr_venda;
public dateTime dt_compra;
public dateTime dt_ini_venda;
public dateTime dt_fim_venda;
public static void main(String[] args){
Produto p = new Produto();
decimal vlrCompra = vlrCompra(vlr_compra > 0.0 && vlrCompra < 51.0);
decimal vlrVenda = vlrVenda(vlrVenda > 10.99 && vlrVenda < 99.99);
dateTime dt_ini_venda = dt_ini_venda(dt_ini_venda && dt_ini_venda);
dateTime p.dt_fim_venda = dt_fim_venda(dt_fim_venda && dt_fim_venda);
if(vlr_venda > vlr_compra){
return vlr_compra;
}else{System.out.println("Valor invalido!");
if(dt_ini_venda < dt_fim_venda){
return dt_ini_venda;
}else{System.out.println("Data invalida!");}
}
}
}
…
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Botoes extends JFrame{
privat Button txtBotao
imgBotao;
}
…
public class Botoes{
super("Botao");
Container c = getContentPane();
c.setLayout(new FlowLayout());
txtBotao = new JButton();
c.add(txtBotao);
Icon img1 = new ImageIcon("smallimg.gif");
Icon img2 = new ImageIcon("UNDERCON.gif");
imgBotao = new JButton(img1);
imgBotao.setRolloverIcon(img2);
imgBotao.setHorizontalTextPosition(SwingConstants.CENTER);
imgBotao.setVerticalTextPosition(SwingConstants.BOTTOM);
c.add(imgBotao);
c.add(txtBotao);
ButtonTratar tratarB = new ButtonTratart();
imgBotao.addActionListener(tratarB);
txtBotao.addActionListener(tratarB);
setSize(300,150);
show();
public static void main(String[] args){
aplic.addWindowListener(new WindowAdapter()
}
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
private class ButtonTratar implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(null, "Voce pressionou: " + e.getActionCommand());
}
}
}
…
Várias coisas fui copiando de apostilas, por isso teria que substituir alguns dados. Se puderem dar uma força. Valeu.
[quote=rico.bezerra]Objetivo: Interface para cadastramento de produtos.
-
Descrição
Realiza cadastro de produtos
-
Fluxo principal:
Abrir a tela
Informar nome, descrição, quantidade, valor de compra, valor de venda, data de compra, data de início da venda, data de fim da venda. * R01, R02, R04;
No campo categoria, serão exibidas apenas as categorias que estejam dentro da faixa de preço do produto. * M01, R03
Ao clicar em salvar * R01, M02
Fecha a tela
-
Fluxos complementares
Não se aplica
-
Regras de negócio
R01: Todos os campos são obrigatórios
R02: Valor de compra de um produto não pode ser inferior ao valor de venda do mesmo
R03: A categoria do produto deve estar dentro da faixa de preço cadastrada na categoria, tendo como base o preço de venda do produto
R04: A data final de venda tem que ser superior a data de início da venda
-
Métodos(As procedures precisam ser criadas)
M01: Executar procedure pSelCategByPreco
M02: Executar procedure plnsProduto
M03: Executar procedure pDelProduto
M04: Pedir confirmação antes de fechar a tela
-
Exceções
Não se aplica
-
Pré-condições
Não se aplica
-
Pós-condições
Não se aplica
-
Descritivo físico
Nome Campo (Origem do dado) [Tipo] Default Brancos(Sim/Não) {Tam} Consistência
Cod. Produto (Id_produto) [int] - N {10}
Nome (Nm_produto) [varchar] - N {50}
Descricao (Desc_produto) [text] - N {-}
Quantidade (Qtd_produto) [int] - N {5}
Valor Compra (Vlr_produto) [decimal] - N {4,2}
Valor venda (Vlr_venda) [decimal] - N {4,2}
Data compra (Dt_compra) [datetime] - N { - }
Data de inicio (Dt_ini_venda) [datetime] - N { - }
da venda
Data de fim (Dt_fim_venda) [datetime] - N { - }
da venda
Categoria (id_categoria) [int] - N { 2 } * Executar M01
- Botões e links
Botão/Link (Estado inicial) [Condições de habilitaçãp] {Ação}
Salvar ( H ) [* R01] {* M02}
Alterar ( H ) {* M01}
Deletar ( H ) {* M03}
- Informações auxiliares
Categorias cadastradas:
ID Nome Vlr_inicial Vlr_final
1 categoria 1 00.0 10.99
2 categoria 2 11.0 25.99
3 categoria 3 26.0 50.99
4 categoria 4 51.0 99.99
- Acesso à base de dados
Servidor: sqllw01
Database: selecao
Tabelas: tblCategoria
tblProduto
UserName: usrSelecao
Password: 1234
…
Bom, iniciei poucas coisas e espero (se Deus quiser) que esteja ao menos no caminho certo.
public class Produto{
public int id_produto;
public int id_categoria;
public int qtd_produto;
public varchar nm_produto;
public text desc_produto;
public decimal vlr_compra;
public decimal vlr_venda;
public dateTime dt_compra;
public dateTime dt_ini_venda;
public dateTime dt_fim_venda;
public static void main(String[] args){
Produto p = new Produto();
decimal vlrCompra = vlrCompra(vlr_compra > 0.0 && vlrCompra < 51.0);
decimal vlrVenda = vlrVenda(vlrVenda > 10.99 && vlrVenda < 99.99);
dateTime dt_ini_venda = dt_ini_venda(dt_ini_venda && dt_ini_venda);
dateTime p.dt_fim_venda = dt_fim_venda(dt_fim_venda && dt_fim_venda);
if(vlr_venda > vlr_compra){
return vlr_compra;
}else{System.out.println("Valor invalido!");
if(dt_ini_venda < dt_fim_venda){
return dt_ini_venda;
}else{System.out.println("Data invalida!");}
}
}
}
…
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Botoes extends JFrame{
privat Button txtBotao
imgBotao;
}
…
public class Botoes{
super("Botao");
Container c = getContentPane();
c.setLayout(new FlowLayout());
txtBotao = new JButton();
c.add(txtBotao);
Icon img1 = new ImageIcon("smallimg.gif");
Icon img2 = new ImageIcon("UNDERCON.gif");
imgBotao = new JButton(img1);
imgBotao.setRolloverIcon(img2);
imgBotao.setHorizontalTextPosition(SwingConstants.CENTER);
imgBotao.setVerticalTextPosition(SwingConstants.BOTTOM);
c.add(imgBotao);
c.add(txtBotao);
ButtonTratar tratarB = new ButtonTratart();
imgBotao.addActionListener(tratarB);
txtBotao.addActionListener(tratarB);
setSize(300,150);
show();
public static void main(String[] args){
aplic.addWindowListener(new WindowAdapter()
}
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
private class ButtonTratar implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(null, "Voce pressionou: " + e.getActionCommand());
}
}
}
…
Várias coisas fui copiando de apostilas, por isso teria que substituir alguns dados. Se puderem dar uma força. Valeu.[/quote]
Não estou conseguindo montar as tebelinhas direitinho, então coloquei algumas coisas entre (), {} e []…pra tentar ajudar melhor. Mals pessoal.
rico.bezerra boa noite…
nao entendi a sua duvida?? vc precisa fazer um software de cadastro???
Abracos
Isso, gostaria de resolver esse exercício. Preciso criar um cadastro de produtos, onde terei que criar um botão para criar novo produto, um para alterar, um para deletar e interligar a um banco de dados. Pode ser em desktop ou web, mas acho que nos hj em dia seria melhor web, não é verdade? Abraços.
rico.bezerra
se vc optar por web será até mais facil (na minha opinião)…
mas tanto faz, se for para facu…
mas corporativamente Web é o melhor…desktop ja ta meio esquecido.
se vc optar por Desktop fica dica:
Para fazer interfaces gráficas utilize a framework JGoodies Forms, é muito boa, e bem mais facil de lidar que as padrões do Java.
O bd vc pode utilizar procedures, pois pelo menos vc tira o SQL do código Java, mas se não quiser, utilize PreparedStatement ao invés de Statement (Statement é proibido no mundo externo, é uma POG ruim).
Outra dica, não coloque a regra de negócio dentro dos botões, divida bem a sua aplicação, criando classes especificas para acesso a bd e regras de negócio (isso vale para Web tbm), regra de negócio dentro de botão é horrivel.
Não sei se ajudei, pois tenho pouca experiencia na area ainda, mas são dicas validas.
Então, na verdade não é pra faculdade e na teoria nem pra empresa, é um teste que aplicaram pra mim e eu não sou be fazer, pedi pro entrevistador me arrumar uma cópia e ele disse que tudo bem, aí, gostaria de fazer o máximo possível pra aprender mesmo. Mas obrigado pelas dicas, gostaria de saber se fiz muita besteira, ou se estou no caminho certo. Abraços.
Pessoal Boa Noite o que o BLV-DOOM JAVA, esta bem correto…só irei acrecentar uns topicos…
Voce pode dividir o seu projeto em camadas:
Por exemplo MVC
http://pt.wikipedia.org/wiki/MVC
Voce pode fazer um DAO para acesso a parte de persistencia
TO’s como beans
FORM para validar o que esta na VIEW
Factory para realizar instancias dos objectos para voce
Na apostila da Caelum 21, tem exemplos de JDBC bem claros…na 16 tem um exemplo com Swing
mas na 21 jah da uma boa ajuda…caso queira um exemplo eh soh postar…boa sorte e bons estudos.