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 ArrayListIngredientes; 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 { ArrayListmisComidas; 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(); ArrayListingredientes; 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;