Foros del Web » Programación para mayores de 30 ;) » Java »

Calculadora sencilla en modo gráfico

Estas en el tema de Calculadora sencilla en modo gráfico en el foro de Java en Foros del Web. Muy buenas, quería saber si hay alguna manera de que en un JTextField() donde se mostrará el resultado de una operación, se muestre el resultado ...
  #1 (permalink)  
Antiguo 28/08/2012, 14:22
 
Fecha de Ingreso: agosto-2012
Ubicación: Murcia
Mensajes: 1
Antigüedad: 11 años, 8 meses
Puntos: 0
Pregunta Calculadora sencilla en modo gráfico

Muy buenas, quería saber si hay alguna manera de que en un JTextField() donde se mostrará el resultado de una operación, se muestre el resultado de un color u otro dependiendo de si este es positivo o negativo.
Os dejo mi código para que os hagais una idea:

Tengo un paquete con 3 clases:

PRINCIPAL:
public class Principal {
public static void main(String[] args) {
Ventana obj = new Ventana("Calculadora Sencilla", 50, 50, 400,350);
}
}


VENTANA:
import java.awt.Color;
import java.awt.Font;
import javax.swing.*;

public class Ventana extends JFrame{
public JTextField campoA, campoB, resultado;
Font fCalibri = new Font("Calibri", Font.BOLD, 16);

public Ventana(String titulo, int posH, int posV, int ancho, int alto) {
super (titulo);
this.setBounds(posH, posV, ancho, alto);
this.getContentPane().setLayout(null);
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);

campoA = new JTextField();
campoA.setBounds(40, 30, 100, 20);
this.getContentPane().add(campoA);

campoB = new JTextField();
campoB.setBounds(160, 30, 100, 20);
this.getContentPane().add(campoB);

JButton sumar = new JButton("+");
sumar.setBounds(40, 70, 50, 40);
this.getContentPane().add(sumar);
sumar.addActionListener(new Manejador(this));
sumar.setFont(fCalibri);

JButton restar = new JButton("-");
restar.setBounds(100, 70, 50, 40);
this.getContentPane().add(restar);
restar.addActionListener(new Manejador(this));
restar.setFont(fCalibri);

JButton mult = new JButton("*");
mult.setBounds(220, 70, 50, 40);
this.getContentPane().add(mult);
mult.addActionListener(new Manejador(this));
mult.setFont(fCalibri);

JButton div = new JButton("/");
div.setBounds(300, 70, 50, 40);
this.getContentPane().add(div);
div.addActionListener(new Manejador(this));
div.setFont(fCalibri);

resultado= new JTextField();
resultado.setBounds(100, 200, 100,50 );
this.getContentPane().add(resultado);
//Aqui es donde quiero cambiar el color según si el resultado es positivo o negativo
}

}


Manejador: (Donde se realizan las operaciones)
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;

public class Manejador implements ActionListener{
Ventana v;
Manejador(Ventana v) {
this.v=v;
}

@Override
public void actionPerformed(ActionEvent e) {
double a, b;
JButton boton;
boton= (JButton) e.getSource(); //Boton pulsado
double resultado;

a=Double.parseDouble(v.campoA.getText()) ;
b=Double.parseDouble(v.campoB.getText()) ;

if(boton.getText().equals("+")){
resultado= a+b;
v.resultado.setText(String.valueOf(resultado));
}else if(boton.getText().equals("-")){
resultado= a-b;
v.resultado.setText(String.valueOf(resultado));
}
}

}




Espero no haberos liado mucho ya que seguro que el codigo se puede mejorar infinitamente, pero en el ejercicio me piden insistentemente que sea lo mas sencilla posible. El tema del posicionamiento de los botones es secundario y lo que me interesa ahora mismo es que funcione. Muchas gracias de antemano. Un saludo!!!
  #2 (permalink)  
Antiguo 29/08/2012, 01:48
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Calculadora sencilla en modo gráfico

Hola:

JTextField tiene métodos setBackground() y setForeground() para fijar los colores.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: calculadora, clase, modo, sencilla, graficos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:52.