Projeto - me ajudem!

Preciso fazer esse projeto na faculdade, e não estou conseguindo montar a tela com os botões alinhados…

O objetivo deste exercício é praticar os conhecimentos adquiridos na disciplina sobre os componentes visuais para desenvolvimento de interfaces gráficas do usuário (GUI) em Java. O exercício poderá ser realizado individualmente ou em duplas.

Deverá ser desenvolvida uma interface gráfica do usuário em Java utilizando componentes de interface AWT e Swing. Deverão ser entregues duas versões do programa: uma utilizando componentes AWT e outra utilizando componentes Swing.

A interface será uma tela de venda de itens de um caixa de um estabelecimento comercial conforme representado graficamente na figura abaixo:

Para o desenvolvimento da interface deverão ser usados componentes para a criação de janelas, diálogos, caixa de texto, rótulos, botões, caixa de listagem e caixa de combinação. Além disso, poderão ser adicionados outros componentes conforme a criatividade do programador.

A tela deve possuir as seguintes funcionalidades:

? Para incluir um novo produto na lista de venda, devem ser preenchidos seu nome, quantidade e valor unitário, e em seguida, clicar no botão Incluir.
? Quando um produto é incluído seu nome, quantidade e valor total (quantidade * valor unitário) devem ser adicionados automaticamente na lista.
? Para remover um item da lista de venda, basta selecionar o mesmo e clicar no botão Excluir. Deverá ser exibido um diálogo solicitando a confirmação do usuário para a exclusão.
? Haverá uma caixa de combinação para o usuário selecionar a forma de pagamento: À vista ou parcelado.
? Ao clicar no botão Finalizar Compra, haverá as seguintes condições:
o Caso a forma de pagamento seja à vista, será exibido um diálogo com o valor total dos itens da lista;
o Caso a forma de pagamento seja parcelado, será exibido um diálogo solicitando o preenchimento do número de parcelas: no mínimo 2 e no máximo 10. Após o usuário informar a quantidade de parcelas e confirmar será exibido o valor de cada parcela e o valor total com juros de 2% ao mês.
 Fórmula para cálculo do valor da parcela:
Vparc = (Vtotal * (1 + (Nparc * 0,02))) / Nparc
Onde:
Vparc ? valor da parcela
Vtotal ? valor total para pagamento a vista
Nparc ? número de parcelas
? Após a exibição do diálogo do valor total da venda à vista ou parcelado, o programa deverá retornar para a tela de venda que será reinicializada para abrir uma nova venda.

1- Bem vindo ao forum.
2- Não Duplique os tópicos.
3- Você ta querendo que a gente faça o exercício para você? Então pague, mas duvido que alguém aceite receber por isso.

Poste suas dúvidas que nós o ajudaremos.

Cara qual IDE vc usa??? se teu caso é de pouco tempo apela pra um editor visual que cria o código pra vc (embora este não fique dos melhores e nem vc aprenda devidamente, porém é o meio mais rápido de se fazer).

Qq coisa posta sua dúvida (usar, instalar…)

cara como vc mesmo disse e para vcs fazerem com o conhecimento adiquiridos na disciplina,
aqui nao tem nunhum papai noel pra fazer isso e dar de presente.
Tu tens de começar o projeto e postar apenas suas duvidas.
POis geralmente o pessoal do forum trabalha o dia todo e nao tem tempo pra fazer
trabalhinhos de facu !!!

Inton cara nao se sinta reprimido por essas criticas, apenas isso eh um feed back
para vc se esforçar a fazer sozinho sanando aqui as duvidas que vem pela frente !!!

valew !!!

o problema que o professor nao que que use nenhum editor visual, quer que fasse na mão mesmo, so que tenho de entregar isso sexta feira, e não estou conseguindo alinhar os botãos

conseguir fazer isso por enquanto:

[code]
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

public class Sales extends Frame implements ActionListener, WindowListener {

private Button incluir, excluir, finaliza;
private TextField produto, quantidade, valor;
private Label lproduto, lquantidade, lvalor;

public Sales() {
super("Menu Vendas");
setSize(600,400);
setLayout(new FlowLayout());

incluir = new Button("Incluir");
incluir.addActionListener(this);
excluir = new Button("Excluir");
excluir.addActionListener(this);
finaliza = new Button("Finalizar Compra");
finaliza.addActionListener(this);



this.addWindowListener(this);

produto = new TextField("",50);
produto.addActionListener(this);
quantidade = new TextField("",3);
quantidade.addActionListener(this);
valor = new TextField("",6);
valor.addActionListener(this);

lproduto = new Label("Produto");
lquantidade = new Label("Quantidade");
lvalor = new Label("Valor");

add(lproduto);
add(produto);

add(lquantidade);
add(quantidade);

add(lvalor);
add(valor);

add(incluir);
add(excluir);
add(finaliza);
}


public void actionPerformed(ActionEvent e) {
	// TODO Stub de método gerado automaticamente
}
	static public void main (String args[]){
 	
		Sales f = new Sales();
		f.show();
}


	public void windowActivated(WindowEvent e) {
		// TODO Stub de método gerado automaticamente
	}
	public void windowClosed(WindowEvent e) {
		// TODO Stub de método gerado automaticamente
	
	}
	
	public void windowClosing(WindowEvent e) {
		System.exit(0);
	}

	public void windowDeactivated(WindowEvent e) {
		// TODO Stub de método gerado automaticamente
		
	}

	public void windowDeiconified(WindowEvent e) {
		// TODO Stub de método gerado automaticamente
		
	}

	public void windowIconified(WindowEvent e) {
		// TODO Stub de método gerado automaticamente
		
	}

	public void windowOpened(WindowEvent e) {
		// TODO Stub de método gerado automaticamente
		
	}

}[/code]

[quote=Tecnoage]1- Bem vindo ao forum.
2- Não Duplique os tópicos.
3- Você ta querendo que a gente faça o exercício para você? Então pague, mas duvido que alguém aceite receber por isso.

Poste suas dúvidas que nós o ajudaremos. [/quote]

Acho que ele já deixou claro a dúvida dele:

[quote=Tecnoage]1- Bem vindo ao forum.
3- Você ta querendo que a gente faça o exercício para você? Então pague, mas duvido que alguém aceite receber por isso.
[/quote]

Eu aceito receber assim como já recebi de alguns amiguinhos do fórum para fazer uns freelas :smiley:

Voltando a dúvida do amigo…

Se vc está com dificuldades para desenhar a tabela, te sugiro 2 opções:

  • Utilize a ide NetBeans que tem um excelente suporte para isso

  • Baixe o plugin VE editor caso vc suje o eclipse que tb é uma excelente opção

Em ambas IDE’s você poderá desenhar sua tabela e alinhar tudo que desejar.

[]'s

[quote=lucasmazzer]o problema que o professor nao que que use nenhum editor visual, quer que fasse na mão mesmo, so que tenho de entregar isso sexta feira, e não estou conseguindo alinhar os botãos

[/quote]

Cara, vc qr que desenha a tela e cola o código aqui pra vc ter uma idéia de como alinha?

Amigo, fiz um exemplo besta pra vc ter idéia de como se alinha…utilizei o NetBeans devido praticidade :smiley:

/*
 * NovoJFrame.java
 *
 * Created on 18 de Setembro de 2007, 09:32
 */

package javaapplication1;

/**
 *
 * @author  david
 */
public class NovoJFrame extends javax.swing.JFrame {
  
  /** Creates new form NovoJFrame */
  public NovoJFrame() {
    initComponents();
  }
  
  /** This method is called from within the constructor to
   * initialize the form.
   * WARNING: Do NOT modify this code. The content of this method is
   * always regenerated by the Form Editor.
   */
  // <editor-fold defaultstate="collapsed" desc=" Código Gerado ">
  private void initComponents() {
    jScrollPane1 = new javax.swing.JScrollPane();
    jTable1 = new javax.swing.JTable();
    jButton1 = new javax.swing.JButton();
    jButton2 = new javax.swing.JButton();
    jButton3 = new javax.swing.JButton();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    jTable1.setModel(new javax.swing.table.DefaultTableModel(
      new Object [][] {
        {null, null, null, null},
        {null, null, null, null},
        {null, null, null, null},
        {null, null, null, null}
      },
      new String [] {
        "Título 1", "Título 2", "Título 3", "Título 4"
      }
    ));
    jScrollPane1.setViewportView(jTable1);

    jButton1.setText("jButton1");

    jButton2.setText("jButton2");

    jButton3.setText("jButton3");

    org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
      layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
      .add(layout.createSequentialGroup()
        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
          .add(layout.createSequentialGroup()
            .addContainerGap()
            .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 375, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
          .add(layout.createSequentialGroup()
            .add(24, 24, 24)
            .add(jButton1)
            .add(27, 27, 27)
            .add(jButton2)
            .add(52, 52, 52)
            .add(jButton3)))
        .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
    );
    layout.setVerticalGroup(
      layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
      .add(layout.createSequentialGroup()
        .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 275, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
        .add(26, 26, 26)
        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
          .add(jButton1)
          .add(jButton2)
          .add(jButton3))
        .addContainerGap(103, Short.MAX_VALUE))
    );
    pack();
  }// </editor-fold>
  
  /**
   * @param args the command line arguments
   */
  public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
      public void run() {
        new NovoJFrame().setVisible(true);
      }
    });
  }
  
  // Declaração de variáveis - não modifique
  private javax.swing.JButton jButton1;
  private javax.swing.JButton jButton2;
  private javax.swing.JButton jButton3;
  private javax.swing.JScrollPane jScrollPane1;
  private javax.swing.JTable jTable1;
  // Fim da declaração de variáveis
  
}

Repare que o alinhamento é feito através de grupos e posições!

[]'s

Me pagando eu como ate Buchada de Bode hahahaha

A melhor forma que eu achei pra alinhar foi usando GridBagLayout… se vc definir um GridBagConstraints vc pode passar as coordenadas x e y que vc quer alinhar. Mas mesmo assim pra ficar perfeito tem que acabar fazer umas “gambiarras”.

//Daniel