y una mini tesis en java, y dicha institución prohibe el uso de jtable promoviendo así el uso de jlist, no estoy teniendo problemas en cargar los datos pero sí en personalizarlos.
Logré ponerle cabeceras a los jlist pero sí una columna tiene 2 o más líneas no se adapta la parte de abajo de la comuna, y si el texto es largo no se adapta la parte de la derecha, además de que las cabeceras no deben tener el mismo tamaño de las columnas del jlist.
Intenté usar reflection pero no doy bien al clavo.
Pongo el código para que me digan dónde están los errores y que cambiar:
Código Java:
Ver original
package app.vista.util.celdas; import app.vista.util.columnas.HeaderPanel; import java.awt.Color; import java.awt.ComponentOrientation; import java.awt.FlowLayout; import java.awt.Font; import javax.swing.BorderFactory; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.ListCellRenderer; protected HeaderPanel header; public CeldaPerformer(HeaderPanel xheader) { this.header = xheader; setOpaque(true); } ta.setOpaque(true); ta.setPreferredSize(xheader.getPreferredSize()); } } }
Código Java:
Ver original
package app.vista.util.celdas; import app.contr.clases.*; import app.contr.util.Conversiones; import app.contr.util.FacadeSystem; import app.vista.util.columnas.*; import java.awt.*; import java.lang.reflect.Field; import javax.swing.*; public class CeldaRegistro extends CeldaPerformer { public CeldaRegistro(HeaderPanel xheader) { super(xheader); try { rendererColumn((HeaderRegistro)header); customeColumnRenderer(lregistro, ((HeaderRegistro)header).getLregistro()); customeColumnRenderer(lfecha, ((HeaderRegistro)header).getLfecha()); customeColumnRenderer(lpaciente, ((HeaderRegistro)header).getLpaciente()); customeColumnRenderer(lmedico, ((HeaderRegistro)header).getLmedico()); customeColumnRenderer(ldescripcion, ((HeaderRegistro)header).getLdescripcion()); customeColumnRenderer(ltratamiento, ((HeaderRegistro)header).getLtratamiento()); this.add(lregistro); this.add(lfecha); this.add(lpaciente); this.add(lmedico); this.add(ldescripcion); this.add(ltratamiento); } } f.setAccessible(true); } } } int maxbottom = 0; for(Paciente p : FacadeSystem.getInstance().manejadorDePacientes().findAll(null)){ for(Registro r : p.getRegistros().getChildrens()){ f.setAccessible(true); if(aux.length > 1){ maxbottom += 20; } } } } } } return maxbottom; } for(Paciente p : FacadeSystem.getInstance().manejadorDePacientes().findAll(null)){ for(Registro r : p.getRegistros().getChildrens()){ f.setAccessible(true); if(aux.length > 1){ if(s.length() > maxright){ maxright = s.length(); } } } } } } } return maxright * 70; } @Override ta.setBackground(xc); } } @Override Registro data = (Registro)value; lregistro.setText(Conversiones.CStr(data.getId())); lfecha.setText(Conversiones.MostrarFechaYHora(data.getConsulta().getFecha())); lmedico.setText(data.getConsulta().getMedico().getNombre() + " " + data.getConsulta().getMedico().getApellido()); lpaciente.setText(data.getConsulta().getPaciente().getNombre() + " " + data.getConsulta().getPaciente().getApellido()); ldescripcion.setText(data.getDescripcion()); ltratamiento.setText(data.getTratamientos()); if (index % 2 == 0) { } else { } if(isSelected) { } setEnabled(list.isEnabled()); setFont(list.getFont()); return this; } }