import javax.swing.DefaultComboBoxModel;
import javax.swing.table.DefaultTableModel;
import java.util.ArrayList;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
/**
*
* @author Rafael
*
* rafaelangelmfx@gmail.com
*
* celular 83942235
*/
public class ArrayListDeDatos implements Rs_interface {
/**
* Para cargar una cuadricula.
* @return
*/
@Override
public DefaultTableModel getModeloTabla(){
String [][] matrizDatos=getDataMatriz();
String [] etiquetas={"Nombre", "Valor"};
return new DefaultTableModel(matrizDatos, etiquetas);
}
/**
* Para llenar un ComboBox.
* @return
*/
@Override
public DefaultComboBoxModel getModeloCombo(){
return new javax.swing.DefaultComboBoxModel<>(getListaDeDatos());
}
@Override
public String[] getListaDeDatos(){
String [/*Filas*/]matrizData = new String[rsFrutas.size()];
for (int x = 0; x < rsFrutas.size(); x++){
matrizData[x] = rsFrutas.get(x).getNombre();
}
return matrizData;
}
@Override
public String[][] getDataMatriz(){
String [/*Filas*/][/*Columnas*/]matrizData = new String[rsFrutas.size()][2];
for (int x = 0; x < rsFrutas.size(); x++){
matrizData[x][0] =rsFrutas.get(x).getNombre();
matrizData[x][1] = rsFrutas.get(x).getValor()+"";
}
return matrizData;
}
/**
* Ultima casilla getSize()-1
* @return
*/
@Override
public int getSize(){
return rsFrutas.size();
}
private ArrayList<Fruta> rsFrutas=new ArrayList<Fruta>();
public void agregar(Fruta nueva_fruta){
// Fruta f=new Fruta(nueva_fruta.getNombre(),nueva_fruta.getValor()); //En caso de que el colector de basura borre antes de recuperar los datos.
System.out.println(rsFrutas.size());
if(existe(nueva_fruta)==-1){
rsFrutas.add(nueva_fruta);//Sin perdida de datos
System.out.println(rsFrutas.get(rsFrutas.size()-1).toString());
//rsFrutas.add(f); //Con perdida de datos.
}
}
private int existe(Fruta nueva_fruta){
try{
for (int i = 0; i < this.rsFrutas.size(); i++) {
if (rsFrutas.get(i) != null) {
if (rsFrutas.get(i).getNombre().equalsIgnoreCase(nueva_fruta.getNombre())==true &&
rsFrutas.get(i).getValor()==nueva_fruta.getValor()) {
return i;//Exciste
}
}
}
}catch(Exception e){
}
return -1; //No existe
}
public boolean buscar(Fruta nueva_fruta){
if(this.existe(nueva_fruta)==-1){
return false;
}
return true;
}
public Fruta getFruta(Fruta nueva_fruta){
try{
for (int i = 0; i < this.rsFrutas.size(); i++) {
if (rsFrutas.get(i) != null) {
if (rsFrutas.get(i).getNombre().equalsIgnoreCase(nueva_fruta.getNombre())==true ) {
return rsFrutas.get(i);
}
}
}
}catch(Exception e){
}
return new Fruta();
}
public boolean eliminar(Fruta nueva_fruta) {
String mensaje="";
int posicion = existe(nueva_fruta);
if (posicion != -1) {
rsFrutas.remove(posicion);
mensaje = "Matricula se eliminó correctamente";
return true;
} else {
mensaje = "No se encuentra la Matricula";
}
return false;
}
public String modificar(Fruta nueva_fruta){
if(this.buscar(nueva_fruta)==true){
this.eliminar(nueva_fruta);
this.agregar(nueva_fruta);
}
return "";
}
}
/**
* Modelo Fruta
* @author Rafael
*/
class Fruta{
public Fruta(){
}
public Fruta(String nuevo_nombre, int nuevo_valor){
nombre=nuevo_nombre;
}
private String nombre="";
/**
* Las propiedades es para permitir ciertos datos y denegar otros.
* Por ejemplo si la informacion a entrar no pertenece a una fruta entonces
* no se permite que entre la informacion a la propiedad.
* @param nuevo_nombre
*/
public void setNombre(String nuevo_nombre){
nombre=nuevo_nombre;
}
/**
* Las propiedades es para permitir ciertos datos y denegar otros.
* Por ejemplo si la informacion a entrar no pertenece a una fruta entonces
* no se permite que entre la informacion a la propiedad.
* @return
*/
public String getNombre(){
return nombre;
}
private int valor=0;
public void setValor(int nuevo_valor){
valor=nuevo_valor;
}
public int getValor(){
return valor;
}
@Override
public String toString(){
return "Fruta " +nombre + ", precio " + valor;
}
}
/**
*
* @author Rafael Angel Montero Fernández
* rafaelangelmfx@gmail.com
*/
public interface Rs_interface {
String[][] getDataMatriz();
String[] getListaDeDatos();
/**
* Para llenar un ComboBox.
* @return
*/
DefaultComboBoxModel getModeloCombo();
/**
* Para cargar una cuadricula.
* @return
*/
DefaultTableModel getModeloTabla();
/**
* Ultima casilla getSize()-1
* @return
*/
int getSize();
}