Programa en Java con AWT para Calcular la Venta de Computadores paso a paso
Programa en Java para la venta de computadores
A continuación se presenta el código fuente de una aplicación de escritorio desarrollada en Java utilizando la librería AWT. El programa permite seleccionar un modelo de computador, indicar la capacidad del disco duro y el tamaño de la pantalla, y calcular el precio total de la venta.
Importación de librerías
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
Declaración de la clase principal
public class Ordenador extends Frame implements ActionListener
{
//Definir los componentes
private Label lblModelo, lblDisco, lblGB, lblPantalla, lblPulg, lblTotal;
private Checkbox optPentium, optAmd, optAthlon;
private CheckboxGroup cgbModelo;
private TextField txtDisco, txtPantalla, txtTotal;
private Button btnCalcular, btnSalir, btnLimpiar;public Ordenador()
{//Personalizar Frame
this.setTitle("Venta de Computadores");
this.setBounds(150, 150, 300, 200);
this.setBackground(Color.green);
this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent we)
{ System.exit(0); }
});
this.setLayout(new FlowLayout());//Crear componentes
lblModelo = new Label("Modelo");
lblDisco = new Label("Disco Duro");
lblGB = new Label("GB");
lblPantalla = new Label("Pantalla");
lblPulg = new Label("Pulg.");
lblTotal = new Label("Total");
txtDisco = new TextField("", 5);//Verificar solo números en la caja de texto
txtDisco.addKeyListener(new KeyAdapter()
{
public void keyTyped(KeyEvent ke)
{
char caracter = ke.getKeyChar();
if((caracter < '0' || caracter > '9') && (caracter != KeyEvent.VK_BACK_SPACE))
{
//Ignorar el evento del teclado
ke.consume();
}
else
{
//Limitar el ingreso de caracteres
if((txtDisco.getText().trim().length() > 1) && (caracter != KeyEvent.VK_BACK_SPACE))
{
//Ignorar el evento del teclado
ke.consume();
}
}
}
});txtPantalla = new TextField("", 5);
//Verificar solo números en la caja de texto
txtPantalla.addKeyListener(new KeyAdapter()
{
public void keyTyped(KeyEvent ke)
{
char caracter = ke.getKeyChar();
if((caracter < '0' || caracter > '9') && (caracter != KeyEvent.VK_BACK_SPACE))
{
//Ignorar el evento del teclado
ke.consume();
}
else
{
//Limitar el ingreso de caracteres
if((txtPantalla.getText().trim().length() > 1) && (caracter != KeyEvent.VK_BACK_SPACE))
{
//Ignorar el evento del teclado
ke.consume();
}
}
}
});txtTotal = new TextField("", 10);
//Bloquear Total para que no sea modificado
txtTotal.setEditable(false);
btnCalcular = new Button("Calcular");
btnSalir = new Button("Salir");
btnLimpiar = new Button("Limpiar");
cgbModelo = new CheckboxGroup();
optPentium = new Checkbox("Pentium Duo", cgbModelo, true);
optAmd = new Checkbox("X2 Duo", cgbModelo, false);
optAthlon = new Checkbox("Athlon", cgbModelo, false);//Agregar componentes al frame
this.add(lblModelo);
this.add(optPentium);
this.add(optAmd);
this.add(optAthlon);
this.add(lblDisco);
this.add(txtDisco);
this.add(lblGB);
this.add(lblPantalla);
this.add(txtPantalla);
this.add(lblPulg);
this.add(btnCalcular);
this.add(lblTotal);
this.add(txtTotal);
this.add(btnSalir);
this.add(btnLimpiar);//Registrar componentes para el escuchador de eventos (ActionListener)
btnSalir.addActionListener(this);
btnCalcular.addActionListener(this);
btnLimpiar.addActionListener(this);//Mostrar frame
this.setVisible(true);
}public static void main(String[] args)
{
new Ordenador();
}public void actionPerformed(ActionEvent ae)
{
if(ae.getSource() == btnLimpiar)
{
txtDisco.setText("");
txtPantalla.setText("");
txtTotal.setText("");
txtDisco.requestFocus();
}if(ae.getSource() == btnSalir)
{
System.exit(0);
}if(ae.getSource() == btnCalcular)
{
int total = 0;//Verificar el modelo seleccionado
if(cgbModelo.getSelectedCheckbox() == optPentium)
{
total = 300000;
}
else
{
if(cgbModelo.getSelectedCheckbox() == optAmd)
{
total = 270000;
}
else
{
total = 262500;
}
}//Verificar disco duro
if(txtDisco.getText().equals("40"))
{
total = total + 40000;
}
else
{
if(txtDisco.getText().equals("60"))
{
total = total + 60000;
}
else
{
total = total + 80000;
}
}//Verificar pantalla
if(txtPantalla.getText().equals("14"))
{
total = total + 24500;
}
else
{
if(txtPantalla.getText().equals("15"))
{
total = total + 26500;
}
else
{
}
if(txtPantalla.getText().equals("17"))
{
total = total + 30000;
}
}//Mostrar total
txtTotal.setText("" + total);
}
}
}