Translate-Traducir

17/5/14

Ejercicio Java Maquina de Bebidas WindowBuilder


Ejercicio Java Maquina de Bebidas WindowBuilder

El codigo esta abajo de  la pregunta.
Esto es un ejemplo de maquina expendedora de bebidas simple.
Desarrollar un programa que muestre un panel para extracción de una bebida:




Por un lado disponer tres objetos de la clase JRadioButton (llamarlos radio1, radio2 y radio 3), configurar el primero para que aparezca seleccionado (propiedad "selected")
Disponer dos objetos de la clase JComboBox (llamarlos comboEuros y comboCentimos)
En el JComboBox pesos inicializar la propiedad model con los valores del 0 al 5 (hay que cargar un valor por cada línea en el diálogo que aparece)
En forma similar el segundo JComboBox cargamos los valores: 0,10,20,30 etc. hasta 90.
Se sabe que :
Bebida A tiene un costo de 0 euros 80 centimos.
Bebida B tiene un costo de 1 euros 20 centimos.
Bebida C tiene un costo de 3 euros 10 centimos.
Cuando se presiona el botón extraer mostrar en la label de resultado el texto "Correcto" o "Incorrecto" dependiendo la bebida seleccionada y la cantidad de Euros y Centimos seleccionados.





import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.Window.Type;


public class MaquinaEx extends JFrame implements ActionListener, ItemListener,ChangeListener {

private JPanel contentPane;
private JTextField textFieldPrecio;
private JRadioButton rdbtnAgua;
private JRadioButton rdbtnCocaCola;
private JRadioButton rdbtnWisky;
private JButton btnExtraer;
private JTextField textFieldVueltas;
private JComboBox<String> comboBoxEu;
private JComboBox<String> comboBoxCen;
private final ButtonGroup buttonGroup = new ButtonGroup();

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MaquinaEx frame = new MaquinaEx();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public MaquinaEx() {
setFont(new Font("Dialog", Font.PLAIN, 16));
setTitle("ELIGE TU BEBIDA");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(300, 100, 500, 441);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
rdbtnAgua = new JRadioButton("Agua");
buttonGroup.add(rdbtnAgua);
rdbtnAgua.setBounds(23, 68, 106, 25);
contentPane.add(rdbtnAgua);
rdbtnAgua.addChangeListener(this);
rdbtnCocaCola = new JRadioButton("Coca cola");
buttonGroup.add(rdbtnCocaCola);
rdbtnCocaCola.setBounds(23, 165, 106, 25);
contentPane.add(rdbtnCocaCola);
rdbtnCocaCola.addChangeListener(this);
rdbtnWisky = new JRadioButton("Wisky");
buttonGroup.add(rdbtnWisky);
rdbtnWisky.setBounds(23, 261, 106, 25);
contentPane.add(rdbtnWisky);
rdbtnWisky.addChangeListener(this);
comboBoxEu = new JComboBox<String>();
comboBoxEu.setBounds(389, 26, 46, 22);
contentPane.add(comboBoxEu);
for (float i=0;i<6;i++){
comboBoxEu.addItem(String.valueOf(i));
}
comboBoxEu.addItemListener( this);
comboBoxCen = new JComboBox<String>();
comboBoxCen.setBounds(389, 166, 46, 22);
contentPane.add(comboBoxCen);
comboBoxCen.addItem(String.valueOf("0.0"));
comboBoxCen.addItem(String.valueOf("0.1"));
comboBoxCen.addItem(String.valueOf("0.2"));
comboBoxCen.addItem(String.valueOf("0.3"));
comboBoxCen.addItem(String.valueOf("0.4"));
comboBoxCen.addItem(String.valueOf("0.5"));
comboBoxCen.addItem(String.valueOf("0.6"));
comboBoxCen.addItem(String.valueOf("0.7"));
comboBoxCen.addItem(String.valueOf("0.8"));
comboBoxCen.addItem(String.valueOf("0.9"));
comboBoxCen.addItemListener( this);
JLabel lblEuros = new JLabel("Euros");
lblEuros.setBounds(299, 29, 56, 16);
contentPane.add(lblEuros);
JLabel lblCen = new JLabel("Centimos");
lblCen.setBounds(299, 165, 56, 25);
contentPane.add(lblCen);
JLabel lblBebida = new JLabel("BEBIDAS");
lblBebida.setFont(new Font("Tahoma", Font.PLAIN, 17));
lblBebida.setBounds(23, 13, 68, 16);
contentPane.add(lblBebida);
JLabel lblPrecio = new JLabel("PRECIO");
lblPrecio.setFont(new Font("Tahoma", Font.PLAIN, 17));
lblPrecio.setBounds(182, 13, 78, 16);
contentPane.add(lblPrecio);
JLabel lblVueltas = new JLabel("VUELTAS");
lblVueltas.setFont(new Font("Tahoma", Font.PLAIN, 17));
lblVueltas.setHorizontalAlignment(SwingConstants.CENTER);
lblVueltas.setBounds(248, 314, 78, 51);
contentPane.add(lblVueltas);
textFieldPrecio = new JTextField();/////////
textFieldPrecio.setHorizontalAlignment(SwingConstants.CENTER);
textFieldPrecio.setFont(new Font("Tahoma", Font.PLAIN, 17));
textFieldPrecio.setText("");
textFieldPrecio.setBounds(182, 68, 59, 121);
contentPane.add(textFieldPrecio);
textFieldPrecio.setColumns(10);
textFieldVueltas = new JTextField();
textFieldVueltas.setHorizontalAlignment(SwingConstants.CENTER);
textFieldVueltas.setFont(new Font("Tahoma", Font.PLAIN, 17));
textFieldVueltas.setBounds(338, 314, 116, 54);
contentPane.add(textFieldVueltas);
textFieldVueltas.setColumns(10);
btnExtraer = new JButton("Extraer");
btnExtraer.addActionListener(this);
btnExtraer.setBounds(77, 343, 97, 25);
contentPane.add(btnExtraer);
}
public void actionPerformed(ActionEvent e) {//boton
String Euros =(String)comboBoxEu.getSelectedItem();
String Centi=(String)comboBoxCen.getSelectedItem();
String Precio=(String)textFieldPrecio.getText();
float ingresoeuro=Float.parseFloat(Euros);
float ingresocent=Float.parseFloat(Centi);
float cobro=Float.parseFloat(Precio);
float totalingreso= (ingresoeuro+ingresocent);
float vuelta= totalingreso-cobro;
if (((JButton)e.getSource()).equals(btnExtraer)){
if(totalingreso<cobro){
textFieldVueltas.setText("");
setTitle("DINERO INSUFICIENTE");
}else{
textFieldVueltas.setText(String.valueOf(vuelta));
setTitle("EXTRAYENDO BEBIDA");
}
}
}

@Override
public void itemStateChanged(ItemEvent e) {//combo
//if (((JComboBox)e.getSource()).equals(rdbtnAgua))
}

@Override
public void stateChanged(ChangeEvent e) {//radio
if ((rdbtnAgua).isSelected()){
textFieldPrecio.setText("0.80");
textFieldPrecio.setVisible(true);
}
if ((rdbtnCocaCola).isSelected()){
textFieldPrecio.setText("1.20");
textFieldPrecio.setVisible(true);
}
if ((rdbtnWisky).isSelected()){
textFieldPrecio.setText("3.10");
textFieldPrecio.setVisible(true);
}
}
}

Aquí les dejo un link relacionados con  java windowbuilder

Poema de mi costumbrista de mi pueblo Es ley del cruceño la hospitalidad


1 comentario:

jonathan hernandez dijo...

podras realizar este programa
realice la programación de una máquina expendedora de productos de Pepsico, dicha máquina deberá contener al menos 8 productos, debe ser capaz de poder cobrar, entregar el producto y devolver cambio (en caso de que aplique). Mediante imágenes (productos y monedas de circulación nacional) se realizarán las operaciones necesarias para el correcto funcionamiento del programa.Los montos válidos que puede aceptar son monedas de $1, $2, $5, $10 y $20.cada moneda tendra que estar en un jbotton.