accion a un boton

Tagged:  

hola al foro, tengo un form con el diseño, a uno de los botones necesito darle accion que me calcule el salario neto de una persona, tengo un txtfield de salario, de salario neto y un checkbox para una deduccion del seguro y otro checkbox para impuestos sobre la renta, lo que no se realmente es como hago para que el boton calcular me de el resultado en el txtfield de salario neto.

gracias y saludos!

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

¿Te importaría adjuntar algo de código? Así te podremos ayudar más fácilmente. Recuerda ponerlo entre las etiquetas <code></code> o <blockcode></blockcode>

para las variables y el calculo tengo lo siguiente

package datos;
 
public class variables {
	private double Salario, SalarioNeto, INSS, IR, TipoIR, DeduccionIR, PorIR;
	private String TipoDeduccion, Nombres, Apellidos;
	int idSalario;
	public double getSalario() {
		return Salario;
	}
	public void setSalario(double salario) {
		Salario = salario;
	}
	public double getSalarioNeto() {
		return SalarioNeto;
	}
	public void setSalarioNeto(double salarioNeto) {
		SalarioNeto = salarioNeto;
	}
	public double getINSS() {
		return INSS;
	}
	public void setINSS(double inss) {
		INSS = inss;
	}
	public double getIR() {
		return IR;
	}
	public void setIR(double ir) {
		IR = ir;
	}
	public double getTipoIR() {
		return TipoIR;
	}
	public void setTipoIR(double tipoIR) {
		TipoIR = tipoIR;
	}
	public double getDeduccionIR() {
		return DeduccionIR;
	}
	public void setDeduccionIR(double deduccionIR) {
		DeduccionIR = deduccionIR;
	}
	public double getPorIR() {
		return PorIR;
	}
	public void setPorIR(double porIR) {
		PorIR = porIR;
	}
	public String getTipoDeduccion() {
		return TipoDeduccion;
	}
	public void setTipoDeduccion(String tipoDeduccion) {
		TipoDeduccion = tipoDeduccion;
	}
	public String getNombres() {
		return Nombres;
	}
	public void setNombres(String nombres) {
		Nombres = nombres;
	}
	public String getApellidos() {
		return Apellidos;
	}
	public void setApellidos(String apellidos) {
		Apellidos = apellidos;
	}
	public int getIdSalario() {
		return idSalario;
	}
	public void setIdSalario(int idSalario) {
		this.idSalario = idSalario;
	}
 
	public variables(){
		Salario = 0.0;
		TipoDeduccion = "";
	}
 
	public void ingreso(double sal, String tipo){
		Salario = sal;
		TipoDeduccion = tipo;
	}
 
	public double calcularSalario(){
 
		INSS = Salario * this.getINSS();
		TipoIR= Salario * 12;
		DeduccionIR = TipoIR - INSS;
		if (DeduccionIR > 50000) {
			PorIR = DeduccionIR * this.getIR();
			IR = PorIR / 12;
		} else {
			IR = 0;
		}
 
		SalarioNeto = Salario - INSS - IR;
		return SalarioNeto;
	}
}

y para el boton de calcular tengo lo siguiente:

			{
				btnCalcular = new JButton();
				btnCalcular.setText("Calcular");
				btnCalcular.setFont(new java.awt.Font("AlArabiya",1,12));
				btnCalcular.addActionListener(new ActionListener(){
 
					@Override
					public void actionPerformed(ActionEvent arg0) {
						variables v = new variables();
						v.setSalario(Double.parseDouble(txtfieldSalario.getText()));
 
						if(cboxINSS.isSelected()) v.setINSS(0.0625);
						if(cboxIR.isSelected()) v.setIR(0.1);
 
 
 
						txtfieldSalarioNeto.setText(Double.toString(v.calcularSalario()));
					}});
			}

pero tengo un gran problema porque me calcula bien cuando doy un check para marcar la deduccion del seguro, que hace lo siguiente:

INSS = Salario * this.getINSS(); esto corresponde al 6.25%

pero cuando marco la deduccion de impuesto sobre la renta IR, deberia hacer lo siguiente:

               TipoIR= Salario * 12;
		DeduccionIR = TipoIR - INSS;
		if (DeduccionIR > 50000) {
			PorIR = DeduccionIR * this.getIR();
			IR = PorIR / 12;
		} else {
			IR = 0;
		}
 
		SalarioNeto = Salario - INSS - IR;

pero no hace eso, sino que hace el mismo calculo para el INSS con la diferencia que cambia el valor porcentual que es 0.1=10%

el calculo de IR trata PRIMERO de multiplicar el salario bruto por 12(meses) = TIPOIR; SEGUNDO, luego a este valor restarle el valor del INSS = DeduccionIR; si el resultado de esta resta es mayor a 50000, TERCERO se le aplica el calculo de IR que es multiplicar el valor de DeduccionIR por 0.1= PorIR que corresponde a 10% de IR y por ultimo tomar el valor de PorIR y dividirlo entre 12(meses) que el resultado seria el valor real de la deduccion de IR y una vez obtenido el IR se toma el salario bruto y se le resta el INSS y IR que es igual al Salario Neto.

creo que en la estructura del calculo debo de tener algun error, pero la idea para el calculo es la explicacion es la antes mencionada.

Gracias por responder y Saludos a todos!

Leonards.

Enviar un comentario nuevo

El contenido de este campo se mantiene privado y no se mostrará públicamente.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de líneas y de párrafos.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <pre>. The supported tag styles are: <foo>, [foo].

Más información sobre opciones de formato

By submitting this form, you accept the Mollom privacy policy.