Java - Problema botón actualizar

 
Vista:
sin imagen de perfil

Problema botón actualizar

Publicado por matias (5 intervenciones) el 14/03/2017 17:20:05
Hola buen día, tengo JPanel en el cual debería mostrarme todos los discos duros del ordenador, y funciona perfectamente pero quiero implementar un botón "actualizar" para que se actualicen los discos y no me funciona!

Dejo el código de este JPanel:


codigpart1


codigpart2

Así se ve cuando inicio


codigpart3

y cuando toco actualizaR


codigpart4


JPanel_Disco son los "mini JPanel" de cada disco (por ejemplo el que está con borde verde)
los agrego a un arraylist porque si son varios tengo que saber cual está seleccionado, y después los agrego al JPanel, cuando lo hago la primera vez se ve perfecto pero cuando quiero actualizar no lo muestra.

Si yo elimino esta linea del botón:

array_disco = new ArrayList<JPanel_Disco>();

Me quedaría así:

discos2.removeAll();

1
2
3
4
5
6
7
8
9
10
File f = new File(".");
File[] roots = f.listRoots();
for (int i = 0; i < roots.length; i++) {
if (roots[i].canRead() == true) {
array_disco.add(new JPanel_Disco(roots[i].getAbsolutePath(), i, parent));
}
}
for (int i = 0; i < array_disco.size(); i++) {
discos2.add(array_disco.get(i));
}

En este caso me debería mostrar los discos que tenía, volver a buscar y mostrarme los que tenía + los que encontró nuevos o no.

Como detectaría el mismo que ya tenía antes me tendría que mostrar el disco C dos veces, y lo hace, funciona perfecto.

el problema es cuando hago
1
array_disco = new ArrayList<JPanel_Disco>();

verifiqué que en el for encuentro el disco, y que se ejecute el add y se ejecuta, estoy hace horas intentando entender por qué no lo muestra.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema botón actualizar

Publicado por Renzo (232 intervenciones) el 14/03/2017 17:33:56
probaste con update ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Problema botón actualizar

Publicado por matias (5 intervenciones) el 14/03/2017 17:42:03
Gracias, en base a tu comentario probé haciendo discos2.updateUI() y lo muestra correctamente pero no entiendo cual es la necesidad de llamar a este método si la primera vez que agrego los paneles se muestran sin hacer ningún update.
Y si puede ser te hago otra duda, probé haciendo updateUI porque el método update me pide un graphics como parámetro, si quisiera usarlo cual sería el parámetro?

Había probado haciendo repaint y algunas otras cosillas, así que que sea esto me toma un poco por sorpresa, voy a investigar un poco más las diferencias entre UpdateUI, repaint, y demás métodos para no tener estos lios mentales en un futuro jaja

Muchas gracias <3
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema botón actualizar

Publicado por Renzo (232 intervenciones) el 14/03/2017 17:47:34
El graphics lo puedes obtener desde el jpanel que estás usando para pintar tu información.
El uptadeui internamente hace el repaint además de otras cosas.

Estamos para ayudar

Saludos

Renzo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar