Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - janegg

Páginas: [1]
1
Hola soy principiante, estoy empleando un método para insertar registros, entonces buscaba un método para refrescar los datos que vaya insertando en un datagridView.

Encontré este:

Código: [Seleccionar]
private Sub refresh
Dim cd As String = "DataSource=C:\Users\jannet_\Documents\Clase NET\veterinaria.s3db"
Dim  con As New SQLiteConnection(cd)
Dim s As String
s = "Select * from  clientes"
Dim da As New SQLiteDataAdapter(s,con)
con.Open()
Dim t As New Data.DataTable
da.fill(t)
Me.dgvClientes.DataSource=t
End Sub

Entonces cada vez que mando a llamar el método en el boton de la inserción sí me muestra el dato que apenas registré. Pero me manda una advertencia:

sub refresh prevalece sobre un método que se puede invalidar en la class 'Control'. Para invalidar el método base, este método se debe declarar como 'Overrides'

Quisiera saber como declarar el método de esa forma :/

2
Hola, acabo de ver las sugerencias del foro, una disculpa enorme. Gracias por su ayuda!

3
Este es mi código.  Estoy creando un jframe, pero no me muestra el panel, ayuda por favor!!

Código: [Seleccionar]
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;

public class Ventanas extends JFrame implements ActionListener
{
   //private AgenciaSG asg;
   private JFrame jf;
   private JTextArea area;
   private JLabel eticodagencia,etinomagencia;
   private JTextField txtcodagencia, txtnomagencia;
   private JPanel panel;
   private JButton boton;

   
   public Ventanas ()
   {
      eticodagencia = new JLabel("Codigo: ");
      etinomagencia = new JLabel("Nombre: ");
     
      txtcodagencia = new JTextField();
      txtnomagencia = new JTextField();
     
      boton = new JButton("Aceptar");
      area = new JTextArea ();
     
      panel = new JPanel();
      jf = new JFrame();
   }
   
   public void setCrear ()
   {
      jf.setSize( 500, 500 );
      jf.setVisible(true);
      jf.setDefaultCloseOperation( EXIT_ON_CLOSE );
      jf.setTitle("Crear");
      jf.setLocationRelativeTo(null);
      setPanelCrear();
     
      //getContentPane().setBackground(Color.blue);
   }
   /*
    //getContentPane().setBackground(Color.green);
      jp.setLayout(null);
      jf.getContentPane().add(jp);//agregar el panel a la ventana
      jl.setText("Hola Mundo");
      //jl.setText("que pepsi");
      jl.setBounds(50, 70, 100, 20);
      //jl.setOpaque(true); //permite cambiar el fondo de la etiqueta
      //jl.setBackground(Color.white); //cambia el color de la etiqueta
      jl.setForeground(Color.orange);//color a la letra
      jl.setFont(new Font("Arial", 0, 18));
      //jl.setText("Hola Mundo");
      jp.add(jl);
      */
   public void setPanelCrear()
   {   
      eticodagencia.setBounds(10, 20, 80, 20);
      eticodagencia.setBounds(10, 50, 80, 20);
     
      txtcodagencia.setBounds(100, 20, 80, 20);
      txtnomagencia.setBounds(100, 50, 80, 20);
     
      boton.setBounds(200, 20, 80, 20);
      boton.addActionListener(this);
      area.setBounds(10, 110, 300, 250);
     
      panel.setLayout(null);     
     
      panel.add(eticodagencia);
      panel.add(etinomagencia);
      panel.add(txtcodagencia);
      panel.add(txtnomagencia);
      panel.add(boton);
      panel.add(area);
     
     
      add(panel);
      jf.setSize( 500, 500 );
      jf.setVisible(true);


}

public void actionPerformed (ActionEvent e)
{
   if(e.getSource() == boton)
   {
      setCapturar();
   }
}

public void setCapturar ()
{
   area.setText("Los datos guardados son: \n Codigo de Agencia: "+txtcodagencia.getText()+"\nNombre de la Agencia: "+txtnomagencia.getText());
}
public static void main (String arg[])
   {
      Ventanas ve = new Ventanas ();
      ve.setCrear();
   }

}

4
La mejor explicación!!
Gracias si me funcionó!
Ya me ha quedado más claro, confundía las restricciones

5
Holaa
Para no tener tantas lineas de codigo en la clase Implementacion, pensaba pasarlo a otra clase, pero como Medicamentos está privado como podría pasarselo a la clase principal main?
Recuerdo que me comentabas algo anteriormente asi : "Estos es porque el método main() pertenece a la clase Implementacion, y por tanto puede ver y acceder directamente a sus atributos, sin tener que usar un metodo public void getArray() ni nada de esto


Si la clase implementación no perteneciera al metodo main cómo lo podría invocar??
Clase Implementacion
Código: [Seleccionar]
import java.io.*;
import java.util.ArrayList;

import javax.swing.JOptionPane;
public class Implementacion
{

private File archivo = new File("archiyect.txt");
private ArrayList<Medicamentos> medicamentos = new ArrayList<>();

public Implementacion()
{
       /* El constructor de Implementacion lo que hará es comprobar si ya existe un
* archivo con datos de Medicamentos ya creado.
* Si existe, recuperará estos datos, creará objetos Medicamentos y los
* pasará al ArrayList desde donde podremos trabajar con ellos.
* Si no existe, no hará nada, tendremos un ArrayList vacio listo para
* que podamos hacer las primeras altas.
       */
if (archivo.exists())
{
try {
BufferedReader leer = new BufferedReader(new FileReader(archivo));
String linea = leer.readLine();
while(linea != null)
{
/*
* Separamos los atributos del Medicamento de la linea que hemos leido
* En la linea los atributos estan separados por un doble guion "--"
* La linea contendrá los 8 atributos correspondientes a un Medicamento.
* Sin embargo, los 4 últimos es posible que no tengan datos validos, si no que
* puede que contengan valores null y 0, ya que los únicos atributos que son
* de obligatoria cumplimentación son los primeros 4.
*/
               String[] atributos = linea.split("--");
//Los 4 atributos obligatorios
String clave = atributos[0];
String nombre = atributos[1];
String precio = atributos[2];
String existencia = atributos[3];

//Los 4 atributos opcionales
               /*
* Ahora recogemos los 4 atributos opcionales.
* Los de tipo String, si no fueron cumplimentados,
* tendrían valor null  y en el archivo de texto se
* habrá escrito la palabra "null". Sin embargo,
* al leer del archivo estamos recibiendo un String
* con el texto "null". No podemos pasar este texto
* directamente al atributo, sino que en este caso
* debemos pasar el valor null, que no es lo mismo
* que un string con el texto "null". Son cosas distintas.
*/

String nombreGenerico;
if (atributos[4].equals("null"))//Este atributo tenía valor null cuando se guardo en el archivo
nombreGenerico = null;
else
nombreGenerico = atributos[4];

               String caducidad;
if (atributos[5].equals("null"))
caducidad= null;
else
caducidad = atributos[5];
               
//int caducidad = Integer.parseInt(atributos[5]);

String formaFarmaceutica;
if (atributos[6].equals("null"))
formaFarmaceutica = null;
else
formaFarmaceutica = atributos[6];

               String concentracion;
if (atributos[7].equals("null"))
concentracion = null;
else
concentracion = atributos[6];
               
//int concentracion = Integer.parseInt(atributos[7]);
               /*
* Ya tenemos los 8 atributos.
* Podemos añadir al ArrayList un nuevo Medicamento.
*/

medicamentos.add(new Medicamentos(clave, nombre, precio, existencia, nombreGenerico,
caducidad, formaFarmaceutica, concentracion));
//Medicamento añadido, leemos una nueva linea y si contiene datos, se repetirá este proceso
linea = leer.readLine();
}
leer.close();
//Lectura concluida.
//Podemos informar por pantalla cuantos Medicamentos hemos recuperado del archivo
JOptionPane.showMessageDialog(null, "Cantidad de Medicamentos recuperados: " + medicamentos.size(),
"Datos Leidos", JOptionPane.INFORMATION_MESSAGE);
} catch (Exception ex)
{
JOptionPane.showMessageDialog(null, "No se pudo leer datos del archivo: " + archivo.getAbsolutePath(),
"Error de Lectura", JOptionPane.WARNING_MESSAGE);
}
}
}

/*public static void main(String args[])throws FileNotFoundException, IOException
{   
//Inicializamos implementacion, quien tiene el ArrayList de Medicamentos
Implementacion implementacion = new Implementacion();
//Inicializamos el objeto que contiene las funciones del programa
AltasListado al = new AltasListado(implementacion.medicamentos);//Recibe el ArrayList de Medicamentos.
      Modificacion modifica = new Modificacion(implementacion.medicamentos);
      Consultas consultas = new Consultas(implementacion.medicamentos);
      Bajas bajas = new Bajas(implementacion.medicamentos);
     
String opcions;
int opcion;
do{
opcions = JOptionPane.showInputDialog ("Menu\n 1.Altas productos\n 2.Listado de productos\n 3.Consulta de productos\n 4.Bajas\n 5. Modificacion 6.SALIR\n");
//opcions = JOptionPane.showInputDialog ("Menu\n 1.Altas productos\n 2.Consulta productos\n 3.Baja porductos\n 4.Modificacion de un producto\n 5.Listado de productos\n 6. Salir\n ");
opcion=Integer.parseInt (opcions);
switch(opcion)
{
case 1:
al.altas();
break;
case 2:
al.listado();
break;
case 3:
String opcionl;
int opc;
do{
opcionl=JOptionPane.showInputDialog ("Menu\n 1.Busqueda por clave\n 2.Busqueda por nombre\n 3.SALIR");
opc=Integer.parseInt(opcionl);
switch(opc){
case 1:
consultas.consultasc();
break;
case 2:
consultas.consultasn();
break;
}
}while(opc!=3);
break;
case 4:
bajas.mebajas();
break;
case 5:
            modifica.modificar();
break;
         case 6:
JOptionPane.showMessageDialog(null, "FIN del programa");
break;
default:
JOptionPane.showMessageDialog(null, "Opcion invalida");

}while(opcion!=6);
}  */ 
}

Clase Main
Código: [Seleccionar]
import java.io.*;
import java.util.ArrayList;
import javax.swing.JOptionPane;

public class Main
{
   private File archivo = new File("archiyect.txt");
private ArrayList<Medicamentos> medicamentos = new ArrayList<>();
   public Main(ArrayList<Medicamentos> medicamentos)
{
this.medicamentos = medicamentos;
}

   public static void main(String args[])throws FileNotFoundException, IOException
{   
//Inicializamos implementacion, quien tiene el ArrayList de Medicamentos
Implementacion implementacion = new Implementacion();
//Inicializamos el objeto que contiene las funciones del programa
AltasListado al = new AltasListado(implementacion.medicamentos);//Recibe el ArrayList de Medicamentos.
      Modificacion modifica = new Modificacion(implementacion.medicamentos);
      Consultas consultas = new Consultas(implementacion.medicamentos);
      Bajas bajas = new Bajas(implementacion.medicamentos);
     
String opcions;
int opcion;
do{
opcions = JOptionPane.showInputDialog ("Menu\n 1.Altas productos\n 2.Listado de productos\n 3.Consulta de productos\n 4.Bajas\n 5. Modificacion 6.SALIR\n");
//opcions = JOptionPane.showInputDialog ("Menu\n 1.Altas productos\n 2.Consulta productos\n 3.Baja porductos\n 4.Modificacion de un producto\n 5.Listado de productos\n 6. Salir\n ");
opcion=Integer.parseInt (opcions);
switch(opcion)
{
case 1:
al.altas();
break;
case 2:
al.listado();
break;
case 3:
String opcionl;
int opc;
do{
opcionl=JOptionPane.showInputDialog ("Menu\n 1.Busqueda por clave\n 2.Busqueda por nombre\n 3.SALIR");
opc=Integer.parseInt(opcionl);
switch(opc){
case 1:
consultas.consultasc();
break;
case 2:
consultas.consultasn();
break;
}
}while(opc!=3);
break;
case 4:
bajas.mebajas();
break;
case 5:
            modifica.modificar();
break;
         case 6:
JOptionPane.showMessageDialog(null, "FIN del programa");
break;
default:
JOptionPane.showMessageDialog(null, "Opcion invalida");

}while(opcion!=6);
}
}

6
Bueno he encontrado otra alternativa, que es declarando las variables como string

7
Disculpa en esta parte del código para que en la clave solo acepte caracteres, tengo un ciclo, pero solo me lo acepta sin el ciclo do, ya que poniéndolo dice que no encuentra la variable, pero tengo que ponerlo para que repita las veces que sea necesaria hasta que se ingrese una clave solo con caracteres :S
Código: [Seleccionar]
import javax.swing.JOptionPane;
import java.io.*;
import java.util.ArrayList;

public class AltasListado {

private File archivo = new File("archiyect.txt");
private ArrayList<Medicamentos> medicamentos = new ArrayList<>();

public AltasListado(ArrayList<Medicamentos> medicamentos)
{
this.medicamentos = medicamentos;
}

public void altas() throws FileNotFoundException,IOException
{
      boolean bandera = false;
      boolean cm, cm2, cm3, cm4, cm5,cm6;

do{
      String clave = JOptionPane.showInputDialog("Dame la clave del producto");
      cm = clave.matches("([a-z]|[A-Z]|[Ñ,ñ]|\\s)+");
        if(cm == false)
          {
            JOptionPane.showMessageDialog(null,"Clave no valida","ERROR",JOptionPane.ERROR_MESSAGE);
                bandera = false;
           }
         else
         {
            bandera = true;
         }
        }while(bandera != true);
Medicamentos nuevoMed = new Medicamentos(clave, nombre, precio, existencia, nombregenerico, caducidad,
      formafarmaceutica, concentracion);
medicamentos.add(nuevoMed);

try{
BufferedWriter escribir = new BufferedWriter(new FileWriter(archivo, true));
escribir.write(nuevoMed.toString());
escribir.newLine();
escribir.close();
}catch(IOException e){
JOptionPane.showMessageDialog(null, "No se pudo escribir datos en archivo: " + archivo.getAbsolutePath(),
"Error de Escritura", JOptionPane.WARNING_MESSAGE);
}
}
private String mensajeMedicamento(Medicamentos m)
{
return "Clave: " + m.getClave()
+ "\nNombre: " + m.getNombre()
+ "\nPrecio: " + m.getPrecio()
+ "\nExistencias: " + m.getExistencia()
+ "\nNombre Generico: " + m.getNombregenerico()
+ "\nCaducidad: " + m.getCaducidad()
+ "\nForma Farmaceutica: " + m.getFormafarmaceutica()
+ "\nConcentracion: " + m.getConcentracion();
}
}

8
Ayy no me había fijado en ese pequeño GRAN detalle  :-\
ya hice los cambios, funciona! Dividiré los métodos en clase, espero no tener que molestarte más!
Gracias compi <3

9
y la Implementacion
Código: [Seleccionar]
import java.io.*;
import java.util.ArrayList;

import javax.swing.JOptionPane;
public class Implementacion
{

private File archivo = new File("c:\\prueba\\archiyect.txt");
private ArrayList<Medicamentos> medicamentos = new ArrayList<>();

public Implementacion()
{
if (archivo.exists())
{
try {
BufferedReader leer = new BufferedReader(new FileReader(archivo));
String linea = leer.readLine();
while(linea != null)
{
String[] atributos = linea.split("--");
//Los 4 atributos obligatorios
String clave = atributos[0];
String nombre = atributos[1];
int precio = Integer.parseInt(atributos[2]);
int existencia = Integer.parseInt(atributos[3]);

//Los 4 atributos opcionales
String nombreGenerico;
if (atributos[4].equals("null"))//Este atributo tenía valor null cuando se guardo en el archivo
nombreGenerico = null;
else
nombreGenerico = atributos[4];

int caducidad = Integer.parseInt(atributos[5]);

String formaFarmaceutica;
if (atributos[6].equals("null"))
formaFarmaceutica = null;
else
formaFarmaceutica = atributos[6];

int concentracion = Integer.parseInt(atributos[7]);

medicamentos.add(new Medicamentos(clave, nombre, precio, existencia, nombreGenerico,
caducidad, formaFarmaceutica, concentracion));
//Medicamento añadido, leemos una nueva linea y si contiene datos, se repetirá este proceso
linea = leer.readLine();
}
leer.close();
//Lectura concluida.
//Podemos informar por pantalla cuantos Medicamentos hemos recuperado del archivo
JOptionPane.showMessageDialog(null, "Cantidad de Medicamentos recuperados: " + medicamentos.size(),
"Datos Leidos", JOptionPane.INFORMATION_MESSAGE);
} catch (Exception ex)
{
JOptionPane.showMessageDialog(null, "No se pudo leer datos del archivo: " + archivo.getAbsolutePath(),
"Error de Lectura", JOptionPane.WARNING_MESSAGE);
}
}
}

public static void main(String args[])throws FileNotFoundException, IOException
{   
//Inicializamos implementacion, quien tiene el ArrayList de Medicamentos
Implementacion implementacion = new Implementacion();
//Inicializamos el objeto que contiene las funciones del programa
Metodos metodos = new Metodos(implementacion.medicamentos);//Recibe el ArrayList de Medicamentos.
      Modificacion modifica = new Modificacion(implementacion.medicamentos);
     
String opcions;
int opcion;
do{
opcions = JOptionPane.showInputDialog ("Menu\n 1.Altas productos\n 2.Listado de productos\n 3.Consulta de productos\n 4.Bajas\n 5. Modificacion 6.SALIR\n");
//opcions = JOptionPane.showInputDialog ("Menu\n 1.Altas productos\n 2.Consulta productos\n 3.Baja porductos\n 4.Modificacion de un producto\n 5.Listado de productos\n 6. Salir\n ");
opcion=Integer.parseInt (opcions);
switch(opcion)
{
case 1:
metodos.altas();
break;
case 2:
metodos.listado();
break;
case 3:
String opcionl;
int opc;
do{
opcionl=JOptionPane.showInputDialog ("Menu\n 1.Busqueda por clave\n 2.Busqueda por nombre\n 3.SALIR");
opc=Integer.parseInt(opcionl);
switch(opc){
case 1:
metodos.consultasc();
break;
case 2:
metodos.consultasn();
break;
}
}while(opc!=3);
break;
case 4:
metodos.bajas();
break;
case 5:
            modifica.modificar();
break;
         case 6:
JOptionPane.showMessageDialog(null, "FIN del programa");
break;
default:
JOptionPane.showMessageDialog(null, "Opcion invalida");

}while(opcion!=5);
}   
}

10
Ohh sii entiendo, lo estoy checando y si compila bien con todas las modificaciones que me dijiste, el problema ahora es que guarda los registros en el archivo de texto, pero cuando quiero ver el listado(los registros) me manda el mensaje de que está vacío, entonces tendría que hacer lo mismo con todos los métodos?
Dejo las clases a las que hice las modificaciones:
Código: [Seleccionar]
import javax.swing.JOptionPane;
import java.io.*;
import java.util.ArrayList;

public class Metodos {

private File archivo = new File("archiyect.txt");
private ArrayList<Medicamentos> medicamentos = new ArrayList<>();

public Metodos(ArrayList<Medicamentos> medicamentos)
{
this.medicamentos = medicamentos;
}
public void altas() throws FileNotFoundException,IOException
{
/*
* Los Medicamentos tienen 8 atributos, pero para su creacion solo
* son obligatorios propocionar 4. En este ejemplo solo pediremos
* los 4 atributos obligatorios.
*/
String clave = JOptionPane.showInputDialog("Dame la clave del producto");
String nombre = JOptionPane.showInputDialog("Escribe el nombre del producto");
int precio = Integer.parseInt(JOptionPane.showInputDialog("Escribe el precio del producto"));
int existencia = Integer.parseInt(JOptionPane.showInputDialog("Cuántos productos hay en existencia"));
String nombregenerico = JOptionPane.showInputDialog("Cual es el nombre generico del medicamento");
      int caducidad = Integer.parseInt(JOptionPane.showInputDialog("Caducidad del producto"));
      String formafarmaceutica = JOptionPane.showInputDialog("Cual es la forma farmaceutica?");
      int concentracion =  Integer.parseInt(JOptionPane.showInputDialog("Concentracion en caso de tenerla"));
      /*
* Tenemos los 4 atributos.
* Crearemos un Medicamento y lo añadiremos al ArrayList.
* Luego, lo añadiremos al archivo de texto en disco.
*/
Medicamentos nuevoMed = new Medicamentos(clave, nombre, precio, existencia, nombregenerico, caducidad,
      formafarmaceutica, concentracion);
medicamentos.add(nuevoMed);

try{
BufferedWriter escribir = new BufferedWriter(new FileWriter(archivo, true));
escribir.write(nuevoMed.toString());
escribir.newLine();
escribir.close();
}catch(IOException e){
JOptionPane.showMessageDialog(null, "No se pudo escribir datos en archivo: " + archivo.getAbsolutePath(),
"Error de Escritura", JOptionPane.WARNING_MESSAGE);
}
}

/**
* Este metodo contruye un String con todos los datos de un
* Medicamento para ser mostrado en pantalla.
* Es útil porque puede ser utilizado para las funciones
* de listado, búsqueda por clave, busqueda por nombre..
* @param m Objeto Medicamentos que queremos mostrar.
* @return Cadena String con todos los datos
*/
private String mensajeMedicamento(Medicamentos m)
{
return "Clave: " + m.getClave()
+ "\nNombre: " + m.getNombre()
+ "\nPrecio: " + m.getPrecio()
+ "\nExistencias: " + m.getExistencia()
+ "\nNombre Generico: " + m.getNombregenerico()
+ "\nCaducidad: " + m.getCaducidad()
+ "\nForma Farmaceutica: " + m.getFormafarmaceutica()
+ "\nConcentracion: " + m.getConcentracion();
}

public void listado()
{
/*
* Recorremos el ArrayList y por cada Medicamento existente
* construimos un mensaje con los datos y lo mostramos en un
* Dialogo de Confirmacion.
* El usuario tiene la oportunidad de finalizar el listado pulsando
* el boton NO de este dialogo.
* Antes de nada, por supuesto, hemos de comprobar si existen medicamentos
* ya registrados
*/
if (medicamentos.isEmpty())
JOptionPane.showMessageDialog(null, "No hay Medicamentos registrados");
else
{
for (int i = 0; i < medicamentos.size(); i++)
{
/*
* Para mostrar el medicamento usamos el String que nos devuelve el metodo
* mensajeMedicamento() y además le añadimos otra linea indicando al usuario
* que puede detener el listado pulsando el boton NO de la ventana de dialogo.
* Esta ventana, en su título superior, además mostrará el número de posicion
* que ocupa este Medicamento en el ArrayList y el total que hay.
* Un mensaje tipo ---> Medicamento nº 4/30
* Así el usuario tendrá una idea de cuantos Medicamentos quedan por listar.
*/
String mensaje = mensajeMedicamento(medicamentos.get(i)) + "\n\n¿Desea seguir visualizando el listado?";

int seguir = JOptionPane.showConfirmDialog(null, mensaje, "Medicamento nº " + (i+1) + "/" + medicamentos.size(), JOptionPane.YES_NO_OPTION);

if (seguir == JOptionPane.NO_OPTION)//Usuario NO quiere seguir con el listado, "rompemos" el bucle
break;
}
}
}
//CONSULTA POR CLAVE
public void consultasc()
{
if (medicamentos.isEmpty())
JOptionPane.showMessageDialog(null, "No hay Medicamentos registrados");
else
{
String clave = JOptionPane.showInputDialog("Introduzca clave del medicamento a buscar:");

/*
* Recorremos el ArrayList mediante un bucle FOR EACH para buscar el Medicamento con
* la clave que nos han indicado.
* Si lo encontramos, mostramos sus datos y detenemos el bucle de búsqueda.
* Si no lo encontramos, habría que informar al usuario de que no existe dicha clave.
* Para controlar si hemos encontrado o no el Medicamento, podemos usar una variable
* booleana. Esta variable comenzará con valor false.
* Si lo encontramos, la pondremos a true.
* Al terminar el bucle de busqueda, si esta variable conserva el valor false inicial,
* sabremos que el Medicamento no fue encontrado e informaremos al usuario.
*/
boolean encontrado = false;
for (Medicamentos m:medicamentos)
{
if (m.getClave().equalsIgnoreCase(clave))
{
encontrado = true;//¡¡Lo hemos encontrado!!
JOptionPane.showMessageDialog(null, mensajeMedicamento(m), "Mostrando medicamento", JOptionPane.INFORMATION_MESSAGE);
}
}
//Bucle de busqueda terminado, hemos de comprobar si fue encontrado el medicamento o no
if (!encontrado)
JOptionPane.showMessageDialog(null, "No se encontro medicamento con clave: " + clave, "Mostrando medicamento", JOptionPane.INFORMATION_MESSAGE);
}

}

//CONSULTA POR NOMBRE
public void consultasn()
{
//consultas por nombre
      if (medicamentos.isEmpty())
JOptionPane.showMessageDialog(null, "No hay Medicamentos registrados");
else
{
String nombre = JOptionPane.showInputDialog("Introduzca nombre del medicamento a buscar:");

/*
* Recorremos el ArrayList mediante un bucle FOR EACH para buscar el Medicamento con
* el nombre que nos han indicado.
* Si lo encontramos, mostramos sus datos y detenemos el bucle de búsqueda.
* Si no lo encontramos, habría que informar al usuario de que no existe dicho nombre.
* Para controlar si hemos encontrado o no el Medicamento, podemos usar una variable
* booleana. Esta variable comenzará con valor false.
* Si lo encontramos, la pondremos a true.
* Al terminar el bucle de busqueda, si esta variable conserva el valor false inicial,
* sabremos que el Medicamento no fue encontrado e informaremos al usuario.
*/
boolean encontrado = false;
for (Medicamentos m:medicamentos)
{
if (m.getNombre().equalsIgnoreCase(nombre))
{
encontrado = true;//¡¡Lo hemos encontrado!!
JOptionPane.showMessageDialog(null, mensajeMedicamento(m), "Mostrando medicamento", JOptionPane.INFORMATION_MESSAGE);
}
}
//Bucle de busqueda terminado, hemos de comprobar si fue encontrado el medicamento o no
if (!encontrado)
JOptionPane.showMessageDialog(null, "No se encontro medicamento con ese nombre: " + nombre, "Mostrando medicamento", JOptionPane.INFORMATION_MESSAGE);
}
     
}


public void bajas()throws FileNotFoundException,IOException
{
/*
* El metodo para hacer bajas es muy parecido al metodo de consulta por clave.
* Solo que esta vez al encontrar el medicamento, este ha de ser eliminado del
* ArrayList y también del fichero de texto donde guardamos los datos.
* Borrar del ArrayList se hace con una sencilla instruccion.
* Borrar la linea de datos del archivo de texto, es un poco más laborioso.
* Para facilitar la tarea, lo ideal es eliminar el archivo por completo
* y volver a crearlo de nuevo con todos los Medicamentos contenidos en el
* ArrayList, donde ya no estará el Medicamento que hemos dado de baja.
*/
if (medicamentos.isEmpty())
JOptionPane.showMessageDialog(null, "No hay Medicamentos registrados");
else
{
String clave = JOptionPane.showInputDialog("Introduzca clave de Medicamento a eliminar:");
boolean encontrado = false;//Para controlar si lo hemos encontrado
boolean borrado = false;//Para controla si el usuario ha decidido eliminarlo
for (int i = 0; i < medicamentos.size(); i++)
{
if (medicamentos.get(i).getClave().equalsIgnoreCase(clave))
{
encontrado = true;
String mensaje = mensajeMedicamento(medicamentos.get(i)) + "\n\n¿Desea dar de baja?";
int confirmar = JOptionPane.showConfirmDialog(null, mensaje, "Confirmar Baja", JOptionPane.YES_NO_OPTION);
if (confirmar == JOptionPane.YES_OPTION)//SI quiere dar de baja
{
//Eliminamos del ArrayList
medicamentos.remove(i);
borrado = true;
}
}
}
/*
* Bucle de busqueda terminado ahora comprobamos si el Medicamento fue encontrado o no.
* Si no fue encontrado, informamos al usuario con un mensaje
* Si fue encontrado y eliminado guardaremos los datos actualizados en el archivo de texto.
* Para crear este archivo habrá que recorrer de nuevo el ArrayList y añadir una linea de texto
* por cada Medicamento que contenga.
*/
if (encontrado && borrado)
{
try {
//Intentamos borrar archivo actual
if (archivo.delete())
{
//Archivo borrado, creamos uno nuevo actualizado
BufferedWriter escribir = new BufferedWriter(new FileWriter(archivo, true));
for (Medicamentos m:medicamentos)
{
escribir.write(m.toString());
escribir.newLine();
}
escribir.close();
JOptionPane.showMessageDialog(null, "Medicamento eliminado.\nLos cambios se han guardado", "Baja de Medicamento",
JOptionPane.INFORMATION_MESSAGE);
}
else//Por algun motivo, no se pudo borrar archivo
{
JOptionPane.showMessageDialog(null, "Error de acceso a archivo.\nLos cambios no han sido guardados", "Baja de Medicamento",
JOptionPane.WARNING_MESSAGE);
}
} catch(Exception ex) {
JOptionPane.showMessageDialog(null, "Error de acceso a archivo\nTipo de error: " + ex.getLocalizedMessage());
}
}
else if(!encontrado)//No fue encontrado
{
JOptionPane.showMessageDialog(null, "NO se encontro Medicamento con la clave: " + clave, "Baja de Medicamentos",
JOptionPane.INFORMATION_MESSAGE);
}

}
}
}

Código: [Seleccionar]
import javax.swing.JOptionPane;
import java.io.*;
import java.util.ArrayList;

public class Modificacion
{
   private File archivo = new File("archiyect.txt");
private ArrayList<Medicamentos> medicamentos = new ArrayList<>();

   public Modificacion(ArrayList<Medicamentos> medicamentos)
{
this.medicamentos = medicamentos;
}
private String mensajeMedicamento(Medicamentos m)
{
return "Clave: " + m.getClave()
+ "\nNombre: " + m.getNombre()
+ "\nPrecio: " + m.getPrecio()
+ "\nExistencias: " + m.getExistencia()
+ "\nNombre Generico: " + m.getNombregenerico()
+ "\nCaducidad: " + m.getCaducidad()
+ "\nForma Farmaceutica: " + m.getFormafarmaceutica()
+ "\nConcentracion: " + m.getConcentracion();
}


public void modificar()throws FileNotFoundException,IOException
   {
   if (medicamentos.isEmpty())
JOptionPane.showMessageDialog(null, "No hay Medicamentos registrados");
else
{
String clave = JOptionPane.showInputDialog("Introduzca la clave del Medicamento para modificar:");
boolean encontrado = false;//Para controlar si lo hemos encontrado
boolean borrado = false;//Para controla si el usuario ha decidido eliminarlo
for (int i = 0; i < medicamentos.size(); i++)
{
if (medicamentos.get(i).getClave().equalsIgnoreCase(clave))
{
encontrado = true;
String mensaje = mensajeMedicamento(medicamentos.get(i)) + "\n\n¿Desea modificar este medicamento?";
int confirmar = JOptionPane.showConfirmDialog(null, mensaje, "Confirmar Baja", JOptionPane.YES_NO_OPTION);
if (confirmar == JOptionPane.YES_OPTION)//SI quiere modificar
{
            medicamentos.remove(i);
                  borrado = true;
                  String claved = JOptionPane.showInputDialog("cual es la nueva clave del producto");
                  String nombre = JOptionPane.showInputDialog("cual es el nuevo nombre del producto");
            int precio = Integer.parseInt(JOptionPane.showInputDialog("cual es el nuevo precio del producto"));
            int existencia = Integer.parseInt(JOptionPane.showInputDialog("Cuántos productos hay en existencia"));
                 
                  Medicamentos nuevoMed = new Medicamentos(claved,nombre, precio, existencia);
            medicamentos.add(nuevoMed);

        /* try{
        BufferedWriter escribir = new BufferedWriter(new FileWriter(archivo, true));
        escribir.write(nuevoMed.toString());
        escribir.newLine();
        escribir.close();
            }catch(IOException e){
         JOptionPane.showMessageDialog(null, "No se pudo escribir datos en archivo: " + archivo.getAbsolutePath(),
   "Error de Escritura", JOptionPane.WARNING_MESSAGE);
                                 }*/

      borrado = true;
}//
               else{
   JOptionPane.showMessageDialog(null, "NO se encontro Medicamento con la clave: " + clave, "Baja de Medicamentos",
JOptionPane.INFORMATION_MESSAGE);
      }
            }
      }    
      }
   }
}

11
Y esta es la nueva clase que cree: Modificacion
Código: [Seleccionar]
import javax.swing.JOptionPane;
import java.io.*;
import java.util.ArrayList;

public class Modificacion
{
   private File archivo = new File("archiyect.txt");
private ArrayList<Medicamentos> medicamentos = new ArrayList<>();

public Modificacion()
{
/*
* El constructor de Metodos lo que hará es comprobar si ya existe un
* archivo con datos de Medicamentos ya creado.
* Si existe, recuperará estos datos, creará objetos Medicamentos y los
* pasará al ArrayList desde donde podremos trabajar con ellos.
* Si no existe, no hará nada, tendremos un ArrayList vacio listo para
* que podamos hacer las primeras altas.
*/
if (archivo.exists())
{
try {
BufferedReader leer = new BufferedReader(new FileReader(archivo));
String linea = leer.readLine();
while(linea != null)
{
/*
* Separamos los atributos del Medicamento de la linea que hemos leido
* En la linea los atributos estan separados por un doble guion "--"
* La linea contendrá los 8 atributos correspondientes a un Medicamento.
* Sin embargo, los 4 últimos es posible que no tengan datos validos, si no que
* puede que contengan valores null y 0, ya que los únicos atributos que son
* de obligatoria cumplimentación son los primeros 4.
*/

String[] atributos = linea.split("--");
//Los 4 atributos obligatorios
String clave = atributos[0];
String nombre = atributos[1];
int precio = Integer.parseInt(atributos[2]);
int existencia = Integer.parseInt(atributos[3]);

/*
* Ahora recogemos los 4 atributos opcionales.
* Los de tipo String, si no fueron cumplimentados,
* tendrían valor null  y en el archivo de texto se
* habrá escrito la palabra "null". Sin embargo,
* al leer del archivo estamos recibiendo un String
* con el texto "null". No podemos pasar este texto
* directamente al atributo, sino que en este caso
* debemos pasar el valor null, que no es lo mismo
* que un string con el texto "null". Son cosas distintas.
*/
String nombreGenerico;
if (atributos[4].equals("null"))//Este atributo tenía valor null cuando se guardo en el archivo
nombreGenerico = null;
else
nombreGenerico = atributos[4];

int caducidad = Integer.parseInt(atributos[5]);

String formaFarmaceutica;
if (atributos[6].equals("null"))
formaFarmaceutica = null;
else
formaFarmaceutica = atributos[6];

int concentracion = Integer.parseInt(atributos[7]);

/*
* Ya tenemos los 8 atributos.
* Podemos añadir al ArrayList un nuevo Medicamento.
*/

medicamentos.add(new Medicamentos(clave, nombre, precio, existencia, nombreGenerico,
caducidad, formaFarmaceutica, concentracion));
//Medicamento añadido, leemos una nueva linea y si contiene datos, se repetirá este proceso
linea = leer.readLine();
}
leer.close();
//Lectura concluida.
//Podemos informar por pantalla cuantos Medicamentos hemos recuperado del archivo
JOptionPane.showMessageDialog(null, "Cantidad de Medicamentos recuperados: " + medicamentos.size(),
"Datos Leidos", JOptionPane.INFORMATION_MESSAGE);
} catch (Exception ex)
{
JOptionPane.showMessageDialog(null, "No se pudo leer datos del archivo: " + archivo.getAbsolutePath(),
"Error de Lectura", JOptionPane.WARNING_MESSAGE);
}
}
}
   
private String mensajeMedicamento(Medicamentos m)
{
return "Clave: " + m.getClave()
+ "\nNombre: " + m.getNombre()
+ "\nPrecio: " + m.getPrecio()
+ "\nExistencias: " + m.getExistencia()
+ "\nNombre Generico: " + m.getNombregenerico()
+ "\nCaducidad: " + m.getCaducidad()
+ "\nForma Farmaceutica: " + m.getFormafarmaceutica()
+ "\nConcentracion: " + m.getConcentracion();
}


public void modificar()throws FileNotFoundException,IOException
   {
   if (medicamentos.isEmpty())
JOptionPane.showMessageDialog(null, "No hay Medicamentos registrados");
else
{
String clave = JOptionPane.showInputDialog("Introduzca la clave del Medicamento para modificar:");
boolean encontrado = false;//Para controlar si lo hemos encontrado
boolean borrado = false;//Para controla si el usuario ha decidido eliminarlo
for (int i = 0; i < medicamentos.size(); i++)
{
if (medicamentos.get(i).getClave().equalsIgnoreCase(clave))
{
encontrado = true;
String mensaje = mensajeMedicamento(medicamentos.get(i)) + "\n\n¿Desea modificar este medicamento?";
int confirmar = JOptionPane.showConfirmDialog(null, mensaje, "Confirmar Baja", JOptionPane.YES_NO_OPTION);
if (confirmar == JOptionPane.YES_OPTION)//SI quiere modificar
{
            medicamentos.remove(i);
                  borrado = true;
                  String claved = JOptionPane.showInputDialog("cual es la nueva clave del producto");
                  String nombre = JOptionPane.showInputDialog("cual es el nuevo nombre del producto");
            int precio = Integer.parseInt(JOptionPane.showInputDialog("cual es el nuevo precio del producto"));
            int existencia = Integer.parseInt(JOptionPane.showInputDialog("Cuántos productos hay en existencia"));
                 
                  Medicamentos nuevoMed = new Medicamentos(claved,nombre, precio, existencia);
            medicamentos.add(nuevoMed);

        /* try{
        BufferedWriter escribir = new BufferedWriter(new FileWriter(archivo, true));
        escribir.write(nuevoMed.toString());
        escribir.newLine();
        escribir.close();
            }catch(IOException e){
         JOptionPane.showMessageDialog(null, "No se pudo escribir datos en archivo: " + archivo.getAbsolutePath(),
   "Error de Escritura", JOptionPane.WARNING_MESSAGE);
                                 }*/

      borrado = true;
}//
               else{
   JOptionPane.showMessageDialog(null, "NO se encontro Medicamento con la clave: " + clave, "Baja de Medicamentos",
JOptionPane.INFORMATION_MESSAGE);
      }
            }
      }    
      }
   }
}

y pues en la Implementacion sólo invoqué la instancia de Modificacion y cambie el nombre:
Código: [Seleccionar]
import java.io.*;
import javax.swing.JOptionPane;
public class Implementacion
{

public static void main(String args[])throws FileNotFoundException, IOException
{     
//Inicializamos el objeto que contiene y gestiona todos los datos y funciones del programa
Metodos metodos = new Metodos();
      Modificacion mod = new Modificacion();

String opcions;
int opcion;
do{
opcions = JOptionPane.showInputDialog ("Menu\n 1.Altas productos\n 2.Listado de productos\n 3.Consulta de productos\n 4.Bajas\n 5.Modificacion\n 6.SALIR\n");
//opcions = JOptionPane.showInputDialog ("Menu\n 1.Altas productos\n 2.Consulta productos\n 3.Baja porductos\n 4.Modificacion de un producto\n 5.Listado de productos\n 6. Salir\n ");
opcion=Integer.parseInt (opcions);
switch(opcion)
{
case 1:
metodos.altas();
break;
case 2:
metodos.listado();
break;
case 3:
String opcionl;
int opc;
do{
opcionl=JOptionPane.showInputDialog ("Menu\n 1.Busqueda por clave\n 2.Busqueda por nombre\n 3.SALIR");
opc=Integer.parseInt(opcionl);
switch(opc){
case 1:
metodos.consultasc();
break;
case 2:
metodos.consultasn();
break;
}
}while(opc!=3);
break;
case 4:
metodos.bajas();
break;
case 5:
mod.modificar();
  break;
            case 6:
JOptionPane.showMessageDialog(null, "FIN del programa");
break;
default:
JOptionPane.showMessageDialog(null, "Opcion invalida");

}while(opcion!=6);
}   
}

Espero me puedas ayudar, gracias!

12
Holaa! Me ha surgido una gran duda, ya implemente el método de modificación, lo habia estado revisando y estaba bien. Pero quería mover ese método a otra clase, pero al momento de ejecutarse no modifica,  tendría que agregarle algo a todos los metodos si los quisera mover a otra clase?
Gracias.

Esta es la clase Métodos, a esta recientemente le habia agregado la modificacion
Código: [Seleccionar]
import javax.swing.JOptionPane;
import java.io.*;
import java.util.ArrayList;

public class Metodos {

private File archivo = new File("archiyect.txt");
private ArrayList<Medicamentos> medicamentos = new ArrayList<>();

public Metodos()
{
/*
* El constructor de Metodos lo que hará es comprobar si ya existe un
* archivo con datos de Medicamentos ya creado.
* Si existe, recuperará estos datos, creará objetos Medicamentos y los
* pasará al ArrayList desde donde podremos trabajar con ellos.
* Si no existe, no hará nada, tendremos un ArrayList vacio listo para
* que podamos hacer las primeras altas.
*/
if (archivo.exists())
{
try {
BufferedReader leer = new BufferedReader(new FileReader(archivo));
String linea = leer.readLine();
while(linea != null)
{
/*
* Separamos los atributos del Medicamento de la linea que hemos leido
* En la linea los atributos estan separados por un doble guion "--"
* La linea contendrá los 8 atributos correspondientes a un Medicamento.
* Sin embargo, los 4 últimos es posible que no tengan datos validos, si no que
* puede que contengan valores null y 0, ya que los únicos atributos que son
* de obligatoria cumplimentación son los primeros 4.
*/

String[] atributos = linea.split("--");
//Los 4 atributos obligatorios
String clave = atributos[0];
String nombre = atributos[1];
int precio = Integer.parseInt(atributos[2]);
int existencia = Integer.parseInt(atributos[3]);

/*
* Ahora recogemos los 4 atributos opcionales.
* Los de tipo String, si no fueron cumplimentados,
* tendrían valor null  y en el archivo de texto se
* habrá escrito la palabra "null". Sin embargo,
* al leer del archivo estamos recibiendo un String
* con el texto "null". No podemos pasar este texto
* directamente al atributo, sino que en este caso
* debemos pasar el valor null, que no es lo mismo
* que un string con el texto "null". Son cosas distintas.
*/
String nombreGenerico;
if (atributos[4].equals("null"))//Este atributo tenía valor null cuando se guardo en el archivo
nombreGenerico = null;
else
nombreGenerico = atributos[4];

int caducidad = Integer.parseInt(atributos[5]);

String formaFarmaceutica;
if (atributos[6].equals("null"))
formaFarmaceutica = null;
else
formaFarmaceutica = atributos[6];

int concentracion = Integer.parseInt(atributos[7]);

/*
* Ya tenemos los 8 atributos.
* Podemos añadir al ArrayList un nuevo Medicamento.
*/

medicamentos.add(new Medicamentos(clave, nombre, precio, existencia, nombreGenerico,
caducidad, formaFarmaceutica, concentracion));
//Medicamento añadido, leemos una nueva linea y si contiene datos, se repetirá este proceso
linea = leer.readLine();
}
leer.close();
//Lectura concluida.
//Podemos informar por pantalla cuantos Medicamentos hemos recuperado del archivo
JOptionPane.showMessageDialog(null, "Cantidad de Medicamentos recuperados: " + medicamentos.size(),
"Datos Leidos", JOptionPane.INFORMATION_MESSAGE);
} catch (Exception ex)
{
JOptionPane.showMessageDialog(null, "No se pudo leer datos del archivo: " + archivo.getAbsolutePath(),
"Error de Lectura", JOptionPane.WARNING_MESSAGE);
}
}
}

public void altas() throws FileNotFoundException,IOException
{
/*
* Los Medicamentos tienen 8 atributos, pero para su creacion solo
* son obligatorios propocionar 4. En este ejemplo solo pediremos
* los 4 atributos obligatorios.
*/
String clave = JOptionPane.showInputDialog("Dame la clave del producto");
String nombre = JOptionPane.showInputDialog("Escribe el nombre del producto");
int precio = Integer.parseInt(JOptionPane.showInputDialog("Escribe el precio del producto"));
int existencia = Integer.parseInt(JOptionPane.showInputDialog("Cuántos productos hay en existencia"));
/*
* Tenemos los 4 atributos.
* Crearemos un Medicamento y lo añadiremos al ArrayList.
* Luego, lo añadiremos al archivo de texto en disco.
*/
Medicamentos nuevoMed = new Medicamentos(clave, nombre, precio, existencia);
medicamentos.add(nuevoMed);

try{
BufferedWriter escribir = new BufferedWriter(new FileWriter(archivo, true));
escribir.write(nuevoMed.toString());
escribir.newLine();
escribir.close();
}catch(IOException e){
JOptionPane.showMessageDialog(null, "No se pudo escribir datos en archivo: " + archivo.getAbsolutePath(),
"Error de Escritura", JOptionPane.WARNING_MESSAGE);
}
}

/**
* Este metodo contruye un String con todos los datos de un
* Medicamento para ser mostrado en pantalla.
* Es útil porque puede ser utilizado para las funciones
* de listado, búsqueda por clave, busqueda por nombre..
* @param m Objeto Medicamentos que queremos mostrar.
* @return Cadena String con todos los datos
*/
private String mensajeMedicamento(Medicamentos m)
{
return "Clave: " + m.getClave()
+ "\nNombre: " + m.getNombre()
+ "\nPrecio: " + m.getPrecio()
+ "\nExistencias: " + m.getExistencia()
+ "\nNombre Generico: " + m.getNombregenerico()
+ "\nCaducidad: " + m.getCaducidad()
+ "\nForma Farmaceutica: " + m.getFormafarmaceutica()
+ "\nConcentracion: " + m.getConcentracion();
}

public void listado()
{
/*
* Recorremos el ArrayList y por cada Medicamento existente
* construimos un mensaje con los datos y lo mostramos en un
* Dialogo de Confirmacion.
* El usuario tiene la oportunidad de finalizar el listado pulsando
* el boton NO de este dialogo.
* Antes de nada, por supuesto, hemos de comprobar si existen medicamentos
* ya registrados
*/
if (medicamentos.isEmpty())
JOptionPane.showMessageDialog(null, "No hay Medicamentos registrados");
else
{
for (int i = 0; i < medicamentos.size(); i++)
{
/*
* Para mostrar el medicamento usamos el String que nos devuelve el metodo
* mensajeMedicamento() y además le añadimos otra linea indicando al usuario
* que puede detener el listado pulsando el boton NO de la ventana de dialogo.
* Esta ventana, en su título superior, además mostrará el número de posicion
* que ocupa este Medicamento en el ArrayList y el total que hay.
* Un mensaje tipo ---> Medicamento nº 4/30
* Así el usuario tendrá una idea de cuantos Medicamentos quedan por listar.
*/
String mensaje = mensajeMedicamento(medicamentos.get(i)) + "\n\n¿Desea seguir visualizando el listado?";

int seguir = JOptionPane.showConfirmDialog(null, mensaje, "Medicamento nº " + (i+1) + "/" + medicamentos.size(), JOptionPane.YES_NO_OPTION);

if (seguir == JOptionPane.NO_OPTION)//Usuario NO quiere seguir con el listado, "rompemos" el bucle
break;
}
}
}
//CONSULTA POR CLAVE
public void consultasc()
{
if (medicamentos.isEmpty())
JOptionPane.showMessageDialog(null, "No hay Medicamentos registrados");
else
{
String clave = JOptionPane.showInputDialog("Introduzca clave del medicamento a buscar:");

/*
* Recorremos el ArrayList mediante un bucle FOR EACH para buscar el Medicamento con
* la clave que nos han indicado.
* Si lo encontramos, mostramos sus datos y detenemos el bucle de búsqueda.
* Si no lo encontramos, habría que informar al usuario de que no existe dicha clave.
* Para controlar si hemos encontrado o no el Medicamento, podemos usar una variable
* booleana. Esta variable comenzará con valor false.
* Si lo encontramos, la pondremos a true.
* Al terminar el bucle de busqueda, si esta variable conserva el valor false inicial,
* sabremos que el Medicamento no fue encontrado e informaremos al usuario.
*/
boolean encontrado = false;
for (Medicamentos m:medicamentos)
{
if (m.getClave().equalsIgnoreCase(clave))
{
encontrado = true;//¡¡Lo hemos encontrado!!
JOptionPane.showMessageDialog(null, mensajeMedicamento(m), "Mostrando medicamento", JOptionPane.INFORMATION_MESSAGE);
}
}
//Bucle de busqueda terminado, hemos de comprobar si fue encontrado el medicamento o no
if (!encontrado)
JOptionPane.showMessageDialog(null, "No se encontro medicamento con clave: " + clave, "Mostrando medicamento", JOptionPane.INFORMATION_MESSAGE);
}

}

//CONSULTA POR NOMBRE
public void consultasn()
{
//consultas por nombre
      if (medicamentos.isEmpty())
JOptionPane.showMessageDialog(null, "No hay Medicamentos registrados");
else
{
String nombre = JOptionPane.showInputDialog("Introduzca nombre del medicamento a buscar:");

/*
* Recorremos el ArrayList mediante un bucle FOR EACH para buscar el Medicamento con
* el nombre que nos han indicado.
* Si lo encontramos, mostramos sus datos y detenemos el bucle de búsqueda.
* Si no lo encontramos, habría que informar al usuario de que no existe dicho nombre.
* Para controlar si hemos encontrado o no el Medicamento, podemos usar una variable
* booleana. Esta variable comenzará con valor false.
* Si lo encontramos, la pondremos a true.
* Al terminar el bucle de busqueda, si esta variable conserva el valor false inicial,
* sabremos que el Medicamento no fue encontrado e informaremos al usuario.
*/
boolean encontrado = false;
for (Medicamentos m:medicamentos)
{
if (m.getNombre().equalsIgnoreCase(nombre))
{
encontrado = true;//¡¡Lo hemos encontrado!!
JOptionPane.showMessageDialog(null, mensajeMedicamento(m), "Mostrando medicamento", JOptionPane.INFORMATION_MESSAGE);
}
}
//Bucle de busqueda terminado, hemos de comprobar si fue encontrado el medicamento o no
if (!encontrado)
JOptionPane.showMessageDialog(null, "No se encontro medicamento con ese nombre: " + nombre, "Mostrando medicamento", JOptionPane.INFORMATION_MESSAGE);
}
     
}


public void bajas()throws FileNotFoundException,IOException
{
/*
* El metodo para hacer bajas es muy parecido al metodo de consulta por clave.
* Solo que esta vez al encontrar el medicamento, este ha de ser eliminado del
* ArrayList y también del fichero de texto donde guardamos los datos.
* Borrar del ArrayList se hace con una sencilla instruccion.
* Borrar la linea de datos del archivo de texto, es un poco más laborioso.
* Para facilitar la tarea, lo ideal es eliminar el archivo por completo
* y volver a crearlo de nuevo con todos los Medicamentos contenidos en el
* ArrayList, donde ya no estará el Medicamento que hemos dado de baja.
*/
if (medicamentos.isEmpty())
JOptionPane.showMessageDialog(null, "No hay Medicamentos registrados");
else
{
String clave = JOptionPane.showInputDialog("Introduzca clave de Medicamento a eliminar:");
boolean encontrado = false;//Para controlar si lo hemos encontrado
boolean borrado = false;//Para controla si el usuario ha decidido eliminarlo
for (int i = 0; i < medicamentos.size(); i++)
{
if (medicamentos.get(i).getClave().equalsIgnoreCase(clave))
{
encontrado = true;
String mensaje = mensajeMedicamento(medicamentos.get(i)) + "\n\n¿Desea dar de baja?";
int confirmar = JOptionPane.showConfirmDialog(null, mensaje, "Confirmar Baja", JOptionPane.YES_NO_OPTION);
if (confirmar == JOptionPane.YES_OPTION)//SI quiere dar de baja
{
//Eliminamos del ArrayList
medicamentos.remove(i);
borrado = true;
}
}
}
/*
* Bucle de busqueda terminado ahora comprobamos si el Medicamento fue encontrado o no.
* Si no fue encontrado, informamos al usuario con un mensaje
* Si fue encontrado y eliminado guardaremos los datos actualizados en el archivo de texto.
* Para crear este archivo habrá que recorrer de nuevo el ArrayList y añadir una linea de texto
* por cada Medicamento que contenga.
*/
if (encontrado && borrado)
{
try {
//Intentamos borrar archivo actual
if (archivo.delete())
{
//Archivo borrado, creamos uno nuevo actualizado
BufferedWriter escribir = new BufferedWriter(new FileWriter(archivo, true));
for (Medicamentos m:medicamentos)
{
escribir.write(m.toString());
escribir.newLine();
}
escribir.close();
JOptionPane.showMessageDialog(null, "Medicamento eliminado.\nLos cambios se han guardado", "Baja de Medicamento",
JOptionPane.INFORMATION_MESSAGE);
}
else//Por algun motivo, no se pudo borrar archivo
{
JOptionPane.showMessageDialog(null, "Error de acceso a archivo.\nLos cambios no han sido guardados", "Baja de Medicamento",
JOptionPane.WARNING_MESSAGE);
}
} catch(Exception ex) {
JOptionPane.showMessageDialog(null, "Error de acceso a archivo\nTipo de error: " + ex.getLocalizedMessage());
}
}
else if(!encontrado)//No fue encontrado
{
JOptionPane.showMessageDialog(null, "NO se encontro Medicamento con la clave: " + clave, "Baja de Medicamentos",
JOptionPane.INFORMATION_MESSAGE);
}

}
}
   
  /* public void modificacion()throws FileNotFoundException,IOException
   {
   if (medicamentos.isEmpty())
JOptionPane.showMessageDialog(null, "No hay Medicamentos registrados");
else
{
String clave = JOptionPane.showInputDialog("Introduzca la clave del Medicamento para modificar:");
boolean encontrado = false;//Para controlar si lo hemos encontrado
boolean borrado = false;//Para controla si el usuario ha decidido eliminarlo
for (int i = 0; i < medicamentos.size(); i++)
{
if (medicamentos.get(i).getClave().equalsIgnoreCase(clave))
{
encontrado = true;
String mensaje = mensajeMedicamento(medicamentos.get(i)) + "\n\n¿Desea modificar este medicamento?";
int confirmar = JOptionPane.showConfirmDialog(null, mensaje, "Confirmar Baja", JOptionPane.YES_NO_OPTION);
if (confirmar == JOptionPane.YES_OPTION)//SI quiere modificar
{
            medicamentos.remove(i);
                  borrado = true;
                  String claved = JOptionPane.showInputDialog("cual es la nueva clave del producto");
                  String nombre = JOptionPane.showInputDialog("cual es el nuevo nombre del producto");
            int precio = Integer.parseInt(JOptionPane.showInputDialog("cual es el nuevo precio del producto"));
            int existencia = Integer.parseInt(JOptionPane.showInputDialog("Cuántos productos hay en existencia"));
                 
                  Medicamentos nuevoMed = new Medicamentos(claved,nombre, precio, existencia);
            medicamentos.add(nuevoMed);

       
      borrado = true;
}//
               else{
   JOptionPane.showMessageDialog(null, "NO se encontro Medicamento con la clave: " + clave, "Baja de Medicamentos",
JOptionPane.INFORMATION_MESSAGE);
      }
            }
      }    
      }
   }*/
}
El método de modificacion lo puse en comentario porque la quiero mover a otra clase

13
Muchas gracias en serio!! Sí haré las consultas por nombre, en ese momento sólo puedo ver el código pero más tarde lo intetaré.
También tengo que hacer el método de modificación, pero si tienes razón es parecido a las bajas. Trataré de implementarlos.
Muchas gracias, sin tengo dudas respecto a los siguientes métodos te preguntaré  :D
Buen día!

14
Muchas gracias en serio!! Sí haré las consultas por nombre, en ese momento sólo puedo ver el código pero más tarde lo intetaré.
También tengo que hacer el método de eliminación y modificación, pero si tienes razón es parecido a las consultas. Trataré de implementarlos.
Muchas gracias, sin tengo dudas respecto a los siguientes métodos te preguntaré  :D
Buen día!

15
Hola! antes que nada muchas gracias por la ayudaa!
Sí, los métodos se deben realizar con los medicamentos, está muy bien así como lo planteaste.
Respecto a los métodos solo me han funcionan las altas :(

16
¿Cómo hacer el mismo programa pero en JOptionPane?

Código: [Seleccionar]
public class EmpledosEcep{
     private  String nombre;
     private String dpto;
     private double salario;
     private int dia;
     private int mes;
     private int a;
     float mensual;
     int antiguedad;
   
    public EmpledosEcep(){
    }
     public EmpledosEcep(String nombre , String dpto ,double salario, int dia , int mes , int a){
        this.nombre=nombre;
        this.dpto=dpto;
        this.salario=salario;
        this.dia=dia;
        this.mes=mes;
        this.a=a;
    }
    public int getAntiguedad() {
        return antiguedad;
    }
    public void setAntiguedad(int antiguedad) {
        this.antiguedad = antiguedad;
    }
    public void setA(int a) {
        this.a = a;
    }
    public void setDia(int dia) {
        this.dia = dia;
    }
    public void setDpto(String dpto) {
        this.dpto = dpto;
    }
    public void setMes(int mes) {
        this.mes = mes;
    }
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
    public void setSalario(double salario) {
        this.salario = salario;
    }
    public int getA() {
        return a;
    }
    public int getDia() {
        return dia;
    }
    public String getDpto() {
        return dpto;
    }
    public int getMes() {
        return mes;
    }
    public String getNombre() {
        return nombre;
    }
    public double getSalario() {
        return salario;
    }
    public float getMensual() {
        return mensual;
    }
    public void setMensual(float mensual) {
        this.mensual = mensual;
    }
}

Código: [Seleccionar]
import java.io.*;

public class mtdEcep {

    int p=0, pos=-1;

     public void registrar(EmpledosEcep[] em , int x)throws IOException{

        BufferedReader i= new BufferedReader(new InputStreamReader(System.in));

        System.out.println("\n\n\nNombre del empleado: ");
        String no=i.readLine();

        String[] v=no.split(" ");

        System.out.println("\nDepartamento donde labora:  ");
        String de=i.readLine();

        System.out.println("\nsalario diario: ");
        float sa=Float.parseFloat(i.readLine());
       
        System.out.println("\nfecha de ingreso");
        System.out.println("dia 00/00/0000:");
        int d=Integer.parseInt(i.readLine());
       
        System.out.println("mes 00/00/0000:");
        int m=Integer.parseInt(i.readLine());
       
        System.out.println("año 00/00/0000: ");
        int an=Integer.parseInt(i.readLine());
       
        em[x]= new EmpledosEcep(no,de,sa,d,m,an);
        float men=(sa*30);
        em[x].setMensual(men);
        int ant=(2010-an);
        em[x].setAntiguedad(ant);
        p=x;
     }
     public void consultaG(EmpledosEcep[] em1, int x)throws IOException{
         BufferedReader i=new BufferedReader(new InputStreamReader(System.in));
         System.out.println("--------------------------------------------------------------------------------");
         System.out.println("NOMBRE\t\tDEPARTAMENTO\tSALARIO MENSUAL\tDIARIO\tFECHA DE INGRESO\n");
         for(int z=0 ; z<x ; z++){
             System.out.println(em1[z].getNombre()+"\t  "+em1[z].getDpto()+"\t  "+em1[z].getMensual() +"\t\t"+em1[z].getSalario()+"   "+em1[z].getDia()+"/"+em1[z].getMes()+"/"+em1[z].getA());
         }
         System.out.println("---------------------------------------------------------------------------------");
     }
     public int busqueda(EmpledosEcep[] em2, int x)throws IOException{
          BufferedReader in= new BufferedReader(new InputStreamReader(System.in));
          int ll=0,j=0;
          String desc="NULL";
          System.out.println("\nNombre: ");
          String busca= in.readLine();
           String[] v=busca.split(" ");
          for(int i=0;i<x;i++){
            desc=em2[i].getNombre();
            if(desc.equalsIgnoreCase(busca)){
            ll=i;
            }
          }
          System.out.println("Nombre: "+em2[ll].getNombre()+" Departamento: "+em2[ll].getDpto()+" Salario: "+em2[ll].getSalario());
          return x;
     }
          public int busqued(EmpledosEcep[] e5, int x)throws IOException{
          BufferedReader in= new BufferedReader(new InputStreamReader(System.in));
          int ll=0,j=0;
          String desc="NULL";
          System.out.println("\nDepartamento: ");
          String busca= in.readLine();
          for(int i=0;i<x;i++){
              desc=e5[i].getDpto();
              if(desc.equalsIgnoreCase(busca)){
              ll=i;
              }
          }
          System.out.println("Nombre: "+e5[ll].getNombre()+" Departamento: "+e5[ll].getDpto()+" Salario: "+e5[ll].getSalario());
          return x;
     }
     public int busqueda(EmpledosEcep[] e1)throws IOException{
          BufferedReader n= new BufferedReader(new InputStreamReader(System.in));
          int aux=0,k=0, j=0;
          System.out.println("\nAntiguedad: ");
          int busca=Integer.parseInt(n.readLine());
          for(int i=0;i<p;i++){
              aux=e1[i].getAntiguedad();
              if(busca==aux){
              k=i;
              }
         }
         System.out.println("Nombre: "+e1[k].getNombre()+" Departamento: "+e1[k].getDpto()+" Salario: "+e1[k].getSalario());
         return k;
     }
     public int bajas(EmpledosEcep[] empZ, int x) throws IOException{
        BufferedReader k = new BufferedReader(new InputStreamReader(System.in));
        int h = 0;
        System.out.println("Introduzca el nombre:");
        String baja = k.readLine();
        for(int y=0;y<x;y++){
            String nomb = empZ[y].getNombre();
            if(nomb.equalsIgnoreCase(baja)){
                h = y;
                System.out.println(empZ[h].getNombre()+"\t"+empZ[h].getDpto());
                System.out.println("Desea darlo de baja? (si/no):");
                String r = k.readLine();
                if(r.equalsIgnoreCase("si"))
                    for(int a=h;a<x;a++)
                        empZ[a]=empZ[a+1];
                x--;
                p--;
                y=x;
                if(r.equalsIgnoreCase("no"))
                    System.out.println("No se eliminara");
            }
        }
        return x;
    }
     public void modificaciones(EmpledosEcep[] e6, int x)throws IOException{
          BufferedReader in= new BufferedReader(new InputStreamReader(System.in));   
          int ll=0;
          float sn=0;
          String desc="NULL";
                System.out.println("\nNombre: ");
                String busca= in.readLine();
                for(int i=0;i<x;i++){
                   desc=e6[i].getNombre();
                    if(desc.equalsIgnoreCase(busca)){
                           ll=i;
                    }
                }
                System.out.println("Ingresa nuevo salario: ");
                sn=Float.parseFloat(in.readLine());
                e6[ll].setSalario(sn);
                float me=(sn*30);
                e6[ll].setMensual(me);
 }
     }


Código: [Seleccionar]
import java.io.*;
public class principalEcep {
    public static void main(String[] args)throws IOException{
       
        BufferedReader in= new BufferedReader(new InputStreamReader(System.in));
       
        EmpledosEcep[] emp=new EmpledosEcep[20];
       
        mtdEcep obj=new mtdEcep();
       
        int x=0,op;
        String r="n";
       
        do{
        System.out.println("\t\tMENU:\n\n");
        System.out.println("\t1.Registrar\n");
        System.out.println("\t2.Consulta general\n");
        System.out.println("\t3.Busqueda\n");
        System.out.println("\t4.Bajas\n");
        System.out.println("\t5.Modificaciones\n");
        System.out.println("\t6.Salir\n");
        System.out.println("Elige tu opcion: ");
        op=Integer.parseInt(in.readLine());
        switch(op){
            case 1:
               do{
                obj.registrar(emp, x);
                x++;
                System.out.println("\n\n\n\tdesea continuar s/n");
                r=in.readLine();
                }while(!r.equalsIgnoreCase("n"));
                break;
            case 2:
                obj.consultaG(emp, x);
                break;
            case 3:
               int opc;
                do{
                    System.out.println("\n\n\tSUBMENU BUSQUEDAS");
                    System.out.println("1.Busqueda por nombre");
                    System.out.println("2.Busqueda por antiguedad");
                    System.out.println("3.Busqueda por deparrtamento");
                    System.out.println("4.Salir al menu");
                    System.out.println("elegir opcion");
                    opc=Integer.parseInt(in.readLine());
                    switch(opc){
                        case 1:
                            int o=0;
                           
                            o=obj.busqueda(emp, x);

                            break;
                        case 2:
                            int p=0;
                           
                            p=obj.busqueda(emp);
                            break;
                        case 3:
                            int y=0;
                           
                            y=obj.busqued(emp, x);
                            break;
                        case 4:
                            break;
                    }
                }while(opc!=4);
                break;
            case 4:
                x= obj.bajas(emp, x);
                break;
            case 5:
                obj.modificaciones(emp, x);
                break;
            case 6:
                break;
        }
        }while(op!=6);
     }
}

17
claro claro, aquí están las demas clases :)
Código: [Seleccionar]
import javax.swing.JOptionPane;
import java.io.*;

public class Metodos
{
int p=0;
  public void altas()throws FileNotFoundException,IOException
  {
   String clave;
   String nombre;
   int precio;
   int existencia;
   try{
      File archivo = new File("archiyect.txt");
      FileWriter escribir = new FileWriter(archivo,true);
     
      clave = JOptionPane.showInputDialog("Dame la clave del producto"); //Por cada uno de estos hay que poner try catch?
      nombre = JOptionPane.showInputDialog("Escribe el nombre del producto"); //esto se guarda en el archivo?
      precio = Integer.parseInt(JOptionPane.showInputDialog("Escribe el precio del producto"));
      existencia = Integer.parseInt(JOptionPane.showInputDialog("Cuántos productos hay en existencia"));
     
      escribir.write(clave+"\n");
      escribir.write(nombre+"\n");
      escribir.write(precio +"\n");
      escribir.write(existencia +"\n");
     
      /*Productos p = new Productos (String clave, String nombre, int precio, int existencia, String nombregnerico, int caducidad, String formafarmaceutica);
      p.getClave(a.clave);
      p.getNombre(a.nombre);
      p.getPrecio(a.precio);
      p.getExistencia(a.existencia);
      p.getNombregenerico(a.nombregenerico);
      p.getCaducidad(a.caducidad);
      p.getFormafarmaceutica(a.formafarmaceutica);*/
     
     
      escribir.close();
   }catch(IOException e){
   
   System.out.println("Error al escribir");
   }
   }
   
   public void listado(Productos []p, int x)throws FileNotFoundException,IOException
   {
      try{
      File archivo = new File("archiyect.txt");
      FileWriter escribir = new FileWriter(archivo,true);//¿hacer esto por cada metodo?
     
      for(int z=0; z<x;z++)
      {
      JOptionPane.showMessageDialog(null,"La clave del producto es:"+p[z].getClave()+"\n"
      +"El nombre del producto es:"+p[z].getNombre()+"\n"
      +"El precio  del producto es:"+p[z].getPrecio()+"\n"
      +"La existencia del producto es:"+p[z].getExistencia()+"\n"
      );
      }//termina for
   }catch(IOException e){
   
   JOptionPane.showMessageDialog(null,"Error al escribir ");
   }
   }
   //CONSULTA POR CLAVE
   public void consultasc(Productos []p1,int x)
   {
    String claveb;
    String desc="NULL";
    int h=0,j=0;
    claveb = JOptionPane.showInputDialog("Cual es la clave del producto");
   
    String busca = claveb;
    String[]v = busca.split(" ");
   
    for(int i=0; i<x; i++){
       desc = p1[i].getClave();
       
       if(desc.equalsIgnoreCase(busca)){ //equalsIgnore
          h = i;
            } 
          }
      JOptionPane.showMessageDialog(null,"La clave del producto es:"+p1[h].getClave()+"\n"
      +"El nombre del producto es:"+p1[h].getNombre()+"\n"
      +"El precio  del producto es:"+p1[h].getPrecio()+"\n"
      +"La existencia del producto es:"+p1[h].getExistencia()+"\n"
      );
     //return x;
   }
   
   //CONSULTA POR NOMBRE
   public void consultasn(Productos []p1,int x)
   {
    String nombreb;
    int ll=0,j=0;
    String desc="NULL";
    nombreb = JOptionPane.showInputDialog("Cual es el nombre del producto");
   
    String busca = nombreb;
    String[]v = busca.split(" ");
   
    for(int i=0;i<x;i++){
       desc=p1[i].getNombre();
       
       if(desc.equalsIgnoreCase(busca)){
          ll=i;
            } 
          }
      JOptionPane.showMessageDialog(null,"La clave del producto es:"+p1[ll].getClave()+"\n"
      +"El nombre del producto es:"+p1[ll].getNombre()+"\n"
      +"El precio  del producto es:"+p1[ll].getPrecio()+"\n"
      +"La existencia del producto es:"+p1[ll].getExistencia()+"\n"
      );
     //return x;
   }
   
   
   public void bajas(Productos[] pb, int x)throws FileNotFoundException,IOException
   {
    int h = 0;
    String bajaclave;
    bajaclave = JOptionPane.showInputDialog("Cual es la clave del producto");
    String baja = bajaclave;
   
        for(int y=0;y<x;y++){
            String nomb = pb[y].getClave();
            if(nomb.equalsIgnoreCase(baja)){
                h = y;
                JOptionPane.showInputDialog(null,"El producto"+pb[h].getClave()+ "\n"+pb[h].getNombre()+"\n","Quiere darlo de baja?(si/no)");
               String r = bajaclave;
                if(r.equalsIgnoreCase("si"))
                    for(int a=h;a<x;a++)
                        pb[a]=pb[a+1];
                x--;
                p--;
                y=x;
                if(r.equalsIgnoreCase("no"))
                JOptionPane.showMessageDialog(null,"No se eliminara");
                }
               

         }

   
     
 
}
}

Código: [Seleccionar]
import java.io.*;
import javax.swing.JOptionPane;
public class Implementacion
{
   public static void main(String args[])throws FileNotFoundException, IOException
   {     
      Metodos obj = new Metodos();
      Productos[] p = new Productos[20];
     
      String opcions;
      int x=0;
      int opcion;
    do{
    opcions = JOptionPane.showInputDialog ("Menu\n 1.Altas productos\n 2.Listado de productos\n 3.Consulta de productos\n 4.Bajas\n 5.SALIR\n");
    //opcions = JOptionPane.showInputDialog ("Menu\n 1.Altas productos\n 2.Consulta productos\n 3.Baja porductos\n 4.Modificacion de un producto\n 5.Listado de productos\n 6. Salir\n ");
      opcion=Integer.parseInt (opcions);
    switch(opcion)
    {
    case 1:obj.altas();
       break;
    case 2:obj.listado(p, x);
       break;
    case 3:
       String opcionl;
       int opc;
                do{
                    opcionl=JOptionPane.showInputDialog ("Menu\n 1.Busqueda por clave\n 2.Busqueda por nombre\n");
                    opc=Integer.parseInt(opcionl);
                    switch(opc){
                        case 1:
                          obj.consultasc(p, x);

                            break;
                        case 2:
                          obj.consultasn(p,x);
                            break;
                        case 3:
                            break;
                    }
                }while(opc!=3);
                break;
       case 4: obj.bajas(p,x);
       break;
       case 5:
       break;
       
   
    }while(opcion!=5);}   
    }

Sólo me guarda las altas en los archivos, pero no realiza los demas métodos :/

18
Mi programa sólo hace el primer método, necesito ayuda. Help me pls, tengo las otras clases

Código: [Seleccionar]
public class Productos
{
   private String clave;
   private String nombre;
   private int precio;
   private int existencia;
   private String nombregenerico;//acido
   private int caducidad;
   private String formafarmaceutica;//tabletas, pastillas, jarabe

   
   public Productos(String clave, String nombre, int precio, int existencia, String nombregnerico, int caducidad, String formafarmaceutica)
   {
   this.clave = clave;
   this.nombre = nombre;
   this.precio = precio;
   this.existencia = existencia;
   }
   
   public void setClave(String clave)
   {
      this.clave = clave;
   }
   public String getClave()
   {
      return clave;
   }
   public void setNombre(String nombre)
   {
      this.nombre = nombre;
   }
   public String getNombre()
   {
      return nombre;
   }
   public void setPrecio(int precio)
   {
      this.precio = precio;
   }
   public int getPrecio()
   {
      return precio;
   }
   public void setExistencia(int existencia)
   {
      this.existencia = existencia;
   }
   public int getExistencia()
   {
      return existencia;
   }
   public void setNombregenerico(String nombregenerico)
   {
      this.nombregenerico = nombregenerico;
   }
   public String getNombregenerico()
   {
      return nombregenerico;
   }
   public void setCaducidad(int caducidad)
   {
      this.caducidad = caducidad;
   }
   public int getCaducidad()
   {
      return caducidad;
   }
   public void setFormafarmaceutica(String formafarmaceutica)
   {
      this.formafarmaceutica = formafarmaceutica;
   }
   public String getFormafarmaceutica()
   {
      return formafarmaceutica;
   }
   
}
 ][public class Medicamentos extends Productos
{
   private String nombregenerico; //acido
   private int caducidad;
   private String formafarmaceutica;//tabletas, pastillas, jarabe
   private int concentracion; //500 mg

   public Medicamentos()
   {
      nombregenerico = null;
      caducidad = 0;
      formafarmaceutica = null;
      concentracion = 0;
   }
   
   public void getNombregenerico(String nombregenerico)
   {
      this.nombregenerico = nombregenerico;
   }
   public String setNombregenerico()
   {
      return(nombregenerico);
   }
   public void getCaducidad(int caducidad)
   {
      this.caducidad = caducidad;
   }
   public int setCaducidad()
   {
      return(caducidad);
   }
   public void getFormafarmaceutica(String formafarmaceutica)
   {
      this.formafarmaceutica = formafarmaceutica;
   }
   public String setFormafarmaceutica()
   {
      return(nombregenerico);
   }
   public void getConcentracion(int concentracion)
   {
      this.concentracion = concentracion;
   }
   public int setConcentracion()
   {
      return(concentracion);
   }
}


Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".