Aplicação Java com WindowBuilder duvida

3 respostas
S

Ola queria saber como fazer uma soma de dois numeros com aplicação java e WindowBuilder, colocarei meu código abaixo para vocês comentarem e me ajudarem sou iniciante em java.

A minha duvida é que a média não está saindo está saindo zerada ela.
Em negrito onde está o Consultar e o média.

Código aplicação Java
<b>package br.unicarioca.PrjMedia.calcula;

public class Soma {
	
	private double media;
	private double nota1,nota2;
	
	
	public double getNota1() {
		return nota1;
	}
	public void setNota1(double nota1) {
		this.nota1 = nota1;
	}
	
	public double getNota2() {
		return nota2;
	}
	public void setNota2(double nota2) {
		this.nota2 = nota2;
	}
	
	 public double getMedia() {
		 return media;
	 }
	
	public void setmedia (double media) {
		this.media = media;
		
		[b]media=(nota1 + nota2)/2;[/b]
		
		
	}

}
Código WindowBuilder
<b> package br.unicarioca.PrjMedia.calcula; 
 
import java.awt.EventQueue; 
 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JTextField; 
import javax.swing.JButton; 
 
import br.unicarioca.PrjMedia.calcula.Soma;
 
import java.awt.event.ActionListener; 
import java.awt.event.ActionEvent; 
 
public class FrmTestaSoma { 
 
  private JFrame frame; 
  private JTextField txtNovoValor1, txtNovoValor2;
   
  public static void main(String[] args) { 
    EventQueue.invokeLater(new Runnable() { 
      public void run() { 
        try { 
          FrmTestaVeiculo window = new FrmTestaVeiculo(); 
          window.frame.setVisible(true); 
        } catch (Exception e) { 
          e.printStackTrace(); 
        } 
      } 
    }); 
  } 
 
  public FrmTestaSoma() { 
    initialize(); 
  } 
 
  private void initialize() {
	  frame = new JFrame(); 
	  frame.setBounds(100, 100, 450, 300); 
	  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
	  frame.getContentPane().setLayout(null); 
	   
	  final Soma soma1 = new Soma();
	   
	  JLabel lblEntreComO = new JLabel("Entre com o primeiro valor"); 
	  lblEntreComO.setBounds(10, 11, 135, 14); 
	  frame.getContentPane().add(lblEntreComO); 
	   
	  txtNovoValor1 = new JTextField(); 
	  txtNovoValor1.addActionListener(new ActionListener() {
	  	public void actionPerformed(ActionEvent arg0) {
	  	}
	  });
	  txtNovoValor1.setBounds(10, 29, 86, 20); 
	  frame.getContentPane().add(txtNovoValor1); 
	  txtNovoValor1.setColumns(10); 
	  
	  
	  txtNovoValor2 = new JTextField(); 
	  txtNovoValor2.addActionListener(new ActionListener() {
	  	public void actionPerformed(ActionEvent arg0) {
	  	}
	  });
	  txtNovoValor2.setBounds(236, 29, 86, 20); 
	  frame.getContentPane().add(txtNovoValor2); 
	  txtNovoValor2.setColumns(10); 
	  
	  
	  JButton btnConfirmar = new JButton("Confirmar"); 
	  btnConfirmar.addActionListener(new ActionListener() { 
	    public void actionPerformed(ActionEvent arg0) { 

	      soma1.setNota1(Float.parseFloat(txtNovoValor1.getText()));
	      soma1.setNota2(Float.parseFloat(txtNovoValor2.getText()));
	    } 
	  }); 
	  btnConfirmar.setBounds(120, 28, 89, 23); 
	  frame.getContentPane().add(btnConfirmar); 
	  JLabel lblValorDoVeculo = new JLabel("Valor do ve\u00EDculo"); 
	  lblValorDoVeculo.setBounds(10, 60, 111, 14); 
	  frame.getContentPane().add(lblValorDoVeculo); 
	   
	  final JLabel lblValor = new JLabel(""); 
	  lblValor.setBounds(10, 85, 94, 23); 
	  frame.getContentPane().add(lblValor); 

	[b]  JButton btnConsultar = new JButton("Consultar"); 
	  btnConsultar.addActionListener(new ActionListener() { 
	    public void actionPerformed(ActionEvent arg0) { 

	    	lblValor.setText(String.valueOf(soma1.getMedia())); [/b]
	    } 
	  }); 
	  btnConsultar.setBounds(120, 85, 89, 23); 
	  frame.getContentPane().add(btnConsultar); 
	  
	  JLabel lblEntreComO_1 = new JLabel("Entre com o segundo valor ");
	  lblEntreComO_1.setBounds(226, 11, 148, 14);
	  frame.getContentPane().add(lblEntreComO_1);
  } 
}

3 Respostas

E

Como meu colega diz, isso é “problema de junta”. Você não soube juntar as coisas direito…

  1. remova a variável de instância “media”
  2. remova o método “setmedia”
  3. Crie apenas um método “getMedia”, que calcula a média a partir das outras notas. (aproveite a conta que você já fez em setmedia).
J

faça como o entanglement falou acima.

Não funcionou pois você não chamou o setmedia em lugar nenhum…

Outra forma seria sempre que fizesse uma alteração nas notas, fosse refeito o calculo da média. Isso se fosse uma conta muito complexa, para não precisar ficar fazendo toda hora que quisesse pegar o valor pelo getMedia.

S

Agora compreendo muito obrigado pela ajuda.

Criado 26 de outubro de 2012
Ultima resposta 26 de out. de 2012
Respostas 3
Participantes 3