Ver Mensaje Individual
  #9 (permalink)  
Antiguo 28/04/2019, 19:39
Avatar de detective_jd
detective_jd
 
Fecha de Ingreso: abril-2011
Ubicación: Salto
Mensajes: 437
Antigüedad: 12 años, 11 meses
Puntos: 6
Respuesta: Personalizando JList

Hola, CalgaryCorpus gracias por responder, resolví el problema, resulta que estaba mal el setBorder, sólo por poner en la parte bottom el ancho de la columna si fuera 50 nunca me iba a mostrar el texto, el código me quedó asi:

Código Java:
Ver original
  1. package app.vista.util.celdas;
  2. import app.contr.clases.*;
  3. import app.contr.util.Conversiones;
  4. import app.contr.util.FacadeSystem;
  5. import app.vista.util.columnas.*;
  6. import java.awt.*;
  7. import javax.swing.*;
  8. public class CeldaRegistro extends CeldaPerformer {
  9.     public CeldaRegistro(HeaderPanel xheader) {
  10.         super(xheader);
  11.     }
  12.     @Override
  13.     protected void customRenderer(JTextArea ta,JLabel xheader) {        
  14.         ta.setOpaque(true);
  15.         ta.setFont(new Font("DejaVu Sans",Font.BOLD, 12));
  16.         ta.setComponentOrientation(
  17.             ComponentOrientation.LEFT_TO_RIGHT);
  18.         ta.setForeground(Color.BLACK);          
  19.         ta.setPreferredSize(new Dimension(
  20.             xheader.getPreferredSize().width, getBottom(xheader)));
  21.         [B][COLOR="Red"]ta.setBorder(BorderFactory.createEmptyBorder(
  22.             0, 20, 0, 20));[/COLOR][/B]
  23.     }
  24.     private int getBottom(JLabel xheader){
  25.         int bottom = getBottom();
  26.         if(bottom == 0){
  27.             bottom = xheader.getPreferredSize().height;
  28.         }
  29.         return bottom;
  30.     }
  31.     private int getBottom(){
  32.         int maxlength = 1;
  33.         int maxBottom = 0;
  34.         for(Paciente p : FacadeSystem.getInstance().manejadorDePacientes().findAll(null)){
  35.             for(Registro r : p.getRegistros().getChildren()){
  36.                 String[] descrip = r.getDescripcion().split("\n");
  37.                 if(descrip.length > maxlength){
  38.                     maxlength = descrip.length;
  39.                 }
  40.                 String[] tratat = r.getTratamientos().split("\n");
  41.                 if(tratat.length > maxlength){
  42.                     maxlength = tratat.length;
  43.                 }
  44.             }
  45.         }
  46.         if(maxlength > 1){
  47.             for(int i = 0; i < maxlength; i++){
  48.                 maxBottom += 25;
  49.             }
  50.         } else {
  51.             maxBottom = 25;
  52.         }
  53.         return maxBottom;
  54.     }
  55.     @Override
  56.     public void displayColumns(Object value) {
  57.         Registro data = (Registro)value;
  58.         Consulta c = data.getConsulta();
  59.         columns[0].setText(Conversiones.CStr(data.getId()));
  60.         columns[1].setText(Conversiones.MostrarFechaYHora(c.getFecha()));
  61.         columns[2].setText(c.getMedico().getNombre() + " " + c.getMedico().getApellido());
  62.         columns[3].setText(c.getPaciente().getNombre() + " " + c.getPaciente().getApellido());
  63.         columns[4].setText(data.getDescripcion());
  64.         columns[5].setText(data.getTratamientos());
  65.     }
  66. }

Ahora lo que tengo que adaptar es la parte del largo para que no me quede cómo la imagen, pongo el link:
Personalizando JList, ancho adaptado, largo por implementar.

Con respecto a:

Cita:
Soy ignorante en esto
En realidad no creo que lo seas, de hecho un ignorante no ayudaría a muchos como tu lo haces.

Espero sus respuestas y Saludos.
__________________
Si te interesa, visita mi perfil de Linkedin. Gracias