Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: crashoscar1 en 20 de Noviembre 2016, 18:51
-
Hola, saludos a toda la comunidad.
Estoy aquí por un problema en un programa que he venido desarrollando, concretamente es un gestor de vídeos de Youtube, ya estaba todo terminado hasta que noté un problema, cuando busco un vídeo selecciono si lo quiero abrir en un navegador, se supone que cuando seleccione que si quiero entrar al navegador, el contador del video (el video está guardado en el arreglo vide, a la vez guardado en un archivo con persistencia) debería aumentar en uno.
El problema del contador es que cuando abro el vídeo el contador se le suma al primer video que está en el archivo, por ejemplo, abro el 6 vídeo y se aumenta en 1 el primero de la lista, mas no el que seleccioné, a continuación mi código.
Este método busca el vídeo, al final está la opción de cambiar contador del vídeo respecto a su título
public vide buscavideot(String titulo) {
vide video = null;
FileReader file;
BufferedReader br;
String record;
boolean xx = this.verificaExistencia(titulo); // Verifica si el video ingresado existe
if (xx == true) { //Si existe ejecute normalmente
try {
file = new FileReader(this.ruta);
br = new BufferedReader(file);
while ((record = br.readLine()) != null) {
String[] campos = record.split(",");
for (int i = 0; i < campos.length; i++) {
if (campos[0].equals(titulo)) {
int campo4 = Integer.parseInt(campos[4]);
int campo6 = Integer.parseInt(campos[6]);
video = new vide(campos[0], campos[1], campos[2], campos[3], campo4, campos[5], campo6);
int ss = video.getdura();
int min = 0;
int h = 0;
while (ss >= 60) {
if (ss >= 60) {
min += 1;
ss -= 60;
}
if (min >= 60) {
h += 1;
min -= 60;
}
}
String d = h + "h:" + min + "m:" + ss + "s";
JOptionPane.showMessageDialog(null, video.gettit() + " " + video.getcat() + " " + video.getgen() + " " + video.getcan() + " " + d + " " + video.getURL() + " " + video.getcon());
break;
}
}
}
int url = JOptionPane.showConfirmDialog(null, "¿Quiere ingresar al video?", "Wait!", JOptionPane.YES_NO_OPTION);
if (url == 0) {
try {
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + video.getURL());
} catch (Exception err) {
JOptionPane.showMessageDialog(null, "Error: " + err);
}
this.cambiancont(titulo); // este es el cambiar contador con respecto al titul
}
} catch (IOException ioe) {
JOptionPane.showMessageDialog(null, "Error buscando en el archivo...!!!");
}
} else {
JOptionPane.showMessageDialog(null, "El video no existe");
}
return video;
}
En el siguiente es el método cambiarcont(String titulo) ya que posiblemente el error esté ahí
public void cambiancont(String titulo) {
ArrayList<vide> videos = this.getvideo();
for (int i = 0; i < videos.size(); i++) {
if (titulo == videos.get(i).gettit()) {
int cont = videos.get(i).getcon() + 1;
this.cambiarCon(cont);
break;
}
}
}
El siguiente es el metodo cambiarcon(int con) que lo que hace es cambiar el contador
public void cambiarCon(int con) {
ArrayList<vide> videos = this.getvideo();
for (vide video : videos) {
if (video.getcon() != con) {
video.setcon(con);
this.reemplazArchivo(videos);
break;
}
}
}
Y por último el reempazArchivo por si se necesita
public void reemplazArchivo(ArrayList<vide> videos) {
try {
File file = new File(this.ruta);
FileWriter fr = new FileWriter(file, false);
PrintWriter ps = new PrintWriter(fr);
for (vide video : videos) {
ps.println(video.gettit() + "," + video.getcat() + "," + video.getgen() + "," + video.getcan() + "," + video.getdura() + "," + video.getURL() + "," + video.getcon());
}
ps.close();
} catch (IOException ioe) {
JOptionPane.showMessageDialog(null, "Error guardando en el archivo...!!!");
}
}
Muchas gracias por su tiempo.
-
Hola crashoscar1 para entender lo que planteas sería bueno que pusieras un ejemplo
Una cosa que resulta un poco extraña es if (titulo == videos.get(i).gettit()) {
Si titulo es un String la comparación no debe hacerse con == sino con equals
Esto está explicado en el curso de Java de la web en https://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188
Saludos