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