miércoles, 8 de febrero de 2017

EJEMPLO DE COMIDA CON ARRAYLIST

A continuación un ejemplo de Menú de comida usando ArrayList,que tendrá una clase Operación que tendrá como métodos mostar ,editar y eliminar los ingredientes del Menú. 


  •  Empezamos creando nuestra clase Comida

public class Comida {

    private String nombre;
   private  ArrayList Ingredientes;

    public Comida() {
        nombre = "";
        Ingredientes = new ArrayList<>();
    }

    public Comida(String nombre, ArrayList ingredientes) {
        this.nombre = nombre;
        this.Ingredientes = ingredientes;
    }

    public Comida(ArrayList Ingredientes) {
        this.Ingredientes = Ingredientes;
    }
    

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public ArrayList getIngredientes() {
        return Ingredientes;
    }

    public void setIngredientes(ArrayList Ingredientes) {
        this.Ingredientes = Ingredientes;
    }
    
}


  • Nuestra clase Operación

import java.util.ArrayList;
import javax.swing.JOptionPane;

public class operacion {

    ArrayList misComidas;

    public operacion() {
        misComidas = new ArrayList<>();
    }

    void guardar(Comida comida) {

        if (buscar(comida.getNombre())==true) {
            JOptionPane.showMessageDialog(null, "El plato ya existe");
        } else {
            misComidas.add(comida);
        }
    }

    boolean buscar(String comida) {

        boolean opcion=false;
         for (int i = 0; i < misComidas.size(); i++) {
            if (comida.equals(misComidas.get(i).getNombre())) {
              opcion=true;
            }

        }
        return opcion;
    }

    public ArrayList getMisComidas() {
        return misComidas;
    }
    public void Editar(int pos,Comida comida){

            misComidas.set(pos, comida);

    }
    public void eliminar(int pos){
      
            misComidas.remove(pos);
        
    }
}


  • Nuestra clase Frame donde crearemos el interfaz de nuestro código

import java.awt.List;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class ComidaInterface extends javax.swing.JFrame {

    operacion operacionComida = new operacion();
    ArrayList ingredientes;

    public ComidaInterface() {
        initComponents();
        this.setTitle("Menu");
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.setVisible(true);
        this.setResizable(false);
        this.setLocationRelativeTo(null);
    }

    private void btLimpiarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
        this.tfNombrecomida.setText("");
        this.taIngredientes.setText("");
        tfNombrecomida.requestFocus();
        taIngredientes.setEditable(true);
        tfNombrecomida.setEditable(true);
    }                                         

    private void btGuardarActionPerformed(java.awt.event.ActionEvent evt) {                                          

        ingredientes = new ArrayList<>();
        //
        if (!taIngredientes.getText().equals("") && !tfNombrecomida.getText().equals("")) {

            String ingred[] = taIngredientes.getText().split("\n");
            for (int i = 0; i < ingred.length; i++) {
                ingredientes.add(ingred[i]);
            }

            //
            Comida comida = new Comida(tfNombrecomida.getText(), ingredientes);
            operacionComida.guardar(comida);
            mostrar(jtmostrar);
            limpiar();
        } else {
            JOptionPane.showMessageDialog(null, "Campo vacío");
            tfNombrecomida.requestFocus();
        }


    }                                         

    private void taIngredientesMouseClicked(java.awt.event.MouseEvent evt) {                                            

    }                                           

    private void jtmostrarMouseClicked(java.awt.event.MouseEvent evt) {                                       
        limpiar();
        tfNombrecomida.setEditable(false);
        taIngredientes.setEditable(false);
    }                                      

    private void btMostrarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        mostrarIngredientes();

    }                                         

    private void btEditarActionPerformed(java.awt.event.ActionEvent evt) {                                         
        taIngredientes.setEditable(true);
        tfNombrecomida.setEditable(true);
        tfNombrecomida.requestFocus();
        ingredientes = new ArrayList<>();
        if (!taIngredientes.getText().equals("")) {
            String ingred[] = taIngredientes.getText().split("\n");
            for (int i = 0; i < ingred.length; i++) {
                if (!ingred[i].equals("")) {
                    ingredientes.add(ingred[i]);
                }

            }

            int posicion = jtmostrar.getSelectedRow();
            Comida comida = new Comida(tfNombrecomida.getText(), ingredientes);
            operacionComida.Editar(posicion, comida);
            mostrar(jtmostrar);
            limpiar();
        } else {
            JOptionPane.showMessageDialog(null, "Campo vacío");
            tfNombrecomida.requestFocus();
        }
    }                                        

    private void btEliminarActionPerformed(java.awt.event.ActionEvent evt) {                                           
        int posicion = jtmostrar.getSelectedRow();
        operacionComida.eliminar(posicion);
        mostrar(jtmostrar);

        taIngredientes.setText("");
        tfNombrecomida.setText("");
        taIngredientes.setEditable(true);
        tfNombrecomida.setEditable(true);
    }                                          

    private void tfNombrecomidaActionPerformed(java.awt.event.ActionEvent evt) {                                               
        taIngredientes.requestFocus();
    }                                              

    void mostrarIngredientes() {
        int posicion = jtmostrar.getSelectedRow();

        tfNombrecomida.setText(jtmostrar.getValueAt(posicion, 0).toString());
        for (int i = 0; i < operacionComida.getMisComidas().get(posicion).getIngredientes().size(); i++) {
            taIngredientes.append(operacionComida.getMisComidas().get(posicion).getIngredientes().get(i) + "\n");
        }
        taIngredientes.setEditable(true);
        tfNombrecomida.setEditable(true);
    }

    DefaultTableModel mostrar(JTable tabla) {
        DefaultTableModel modelo = (DefaultTableModel) tabla.getModel();
        modelo.setRowCount(0);
        Object[] fila = new Object[1];
        

        for (int i = 0; i < operacionComida.getMisComidas().size(); i++) {
            fila[0] = operacionComida.getMisComidas().get(i).getNombre();
            modelo.addRow(fila);
        }
        return modelo;
    }

    void limpiar() {
        tfNombrecomida.setText("");
        taIngredientes.setText("");
        tfNombrecomida.requestFocus();
    }

    public static void main(String args[]) {
  
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new ComidaInterface().setVisible(true);
            }
        });
    }
    private javax.swing.JButton btEditar;
    private javax.swing.JButton btEliminar;
    private javax.swing.JButton btGuardar;
    private javax.swing.JButton btLimpiar;
    private javax.swing.JButton btMostrar;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JTable jtmostrar;
    private javax.swing.JTextArea taIngredientes;
    private javax.swing.JTextField tfNombrecomida;





No hay comentarios:

Publicar un comentario