Hola Calgary Corpus, verás en CeldaRegistro no lo tiene, pero puedo ponerle estás líneas de relleno (las comenté y no cambia en nada estando o no):
Código Java:
Ver originalsetEnabled(list.isEnabled());
setFont(list.getFont());
Cita: Creo que tu codigo funcionaria igual de bien o mal si eliminas el "implements ListCellRenderer" y remueves la funcion getListCellRendererComponent, pues no tiene sentido haberla implementado si no la usas nunca.
El problema está en este código, que está en el código:
Código Java:
Ver originalprivate void cargarHistoriaClinica(Paciente paciente){
pnlshowhistoriaclinica.removeAll();
HeaderRegistro hreg = new HeaderRegistro();
lthistoriaclinica.setModel(new ModeloRegistro(paciente));
[B]lthistoriaclinica.setCellRenderer(new CeldaRegistro(hreg));[/B]
sphistoriaclinica
= new JScrollPane(lthistoriaclinica
); pnlshowhistoriaclinica.add(sphistoriaclinica);
pnlshowhistoriaclinica.updateUI();
}
Sucede que para usar el setCellRenderer en los jlist pero el parámetro debe ser si o si de tipo ListCellRenderer, además puse el listado que no funciona porque el código tiene varios jlist con modelos, cabeceras y celdas que funcionan.
Pero tengo problemas para adaptar el largo, mi problema está en el cálculo pongo el código:
Código Java:
Ver originalprotected void customRendererRight
(JTextArea ta,
int i,
int right
) { ta.setOpaque(true);
ta.
setFont(new Font("DejaVu Sans",
Font.
BOLD,
12)); ta.setComponentOrientation(
ta.
setForeground(Color.
BLACK); header.
getHeaders()[i
].
setPreferredSize(new Dimension(getRight
(i,right
),
header.getHeaders()[i].getPreferredSize().height));
ta.
setPreferredSize(new Dimension(getRight
(i,right
),
getBottom(header.getHeaders()[i])));
0, 20, 0, 20));
}
private int getRight(int i, int typeRight){
System.
out.
println("del string: "+ (typeRight
+ 40)); System.
out.
println("de la cabecera: "+ (header.
getHeaders()[i
].
getPreferredSize().
width)); int right = typeRight;
int nowRight = header.getHeaders()[i].getPreferredSize().width - 40;
if((right + 40) > nowRight){
int dif = right - nowRight;
right = header.getHeaders()[i].getPreferredSize().width + dif + 20;
} else {
right = header.getHeaders()[i].getPreferredSize().width;
}
return right;
}
private int getRightTratat(){
int length = 0;
for(Paciente p : FacadeSystem.getInstance().manejadorDePacientes().findAll(null)){
for(Registro r : p.getRegistros().getChildren()){
String[] tratat
= r.
getTratamientos().
split("\n"); if(s.length() > length){
length = s.length();
}
}
}
}
return length;
}
private int getRightDescrip(){
int length = 0;
for(Paciente p : FacadeSystem.getInstance().manejadorDePacientes().findAll(null)){
for(Registro r : p.getRegistros().getChildren()){
String[] descrip
= r.
getDescripcion().
split("\n"); if(s.length() > length){
length = s.length();
}
}
}
}
return length;
}
El getRight(int i, int typeRight) en consola me aparece esto:
Cita: del string: 74
de la cabecera: 322
del string: 75
de la cabecera: 327
del string es el del texto y la cabecera es el largo de la misma para la columna pero la forma de obtenerlo ya es mala porque 40 es la separación de la parte izquierda y derecha de las columnas. ¿Que se les ocurre?
Espero sus respuestas y saludos.