Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] JTable Multilinea

Estas en el tema de JTable Multilinea en el foro de Java en Foros del Web. Saludos compañeros de forosdelweb, Esta vez vengo con un problema referente a los JTable multilinea y quisiera ver si me pueden ayudar... Ya e logrado ...
  #1 (permalink)  
Antiguo 01/05/2013, 03:18
Avatar de aasjpvm  
Fecha de Ingreso: abril-2013
Mensajes: 8
Antigüedad: 11 años
Puntos: 2
Pregunta JTable Multilinea

Saludos compañeros de forosdelweb, Esta vez vengo con un problema referente a los JTable multilinea y quisiera ver si me pueden ayudar...

Ya e logrado hacer funcionar dicho código (Es este mismo: [URL="http://www.esus.com/docs/GetQuestionPage.jsp?uid=1269"]http://www.esus.com/docs/GetQuestionPage.jsp?uid=1269[/URL] ):




Clase del rendered

Código:
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.border.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
 
/**
 * @version 1.0 11/09/98
 */
public class MultiLineCellExample extends JFrame {
  MultiLineCellExample() {
    super( "Multi-Line Cell Example" );
 
    DefaultTableModel dm = new DefaultTableModel() {
      public Class getColumnClass(int columnIndex) {
        return String.class;
      }
    };
    dm.setDataVector(new Object[][]{{"a\na","b\nb","c\nc"},
                                    {"A\nA","B\nB","C\nC"}},
                     new Object[]{"1","2","3"});
 
    JTable table = new JTable( dm );
    
    int lines = 2;
    table.setRowHeight( table.getRowHeight() * lines);
    
    //
    // table.setRowHeight(0);
    //
    // I got "java.lang.IllegalArgumentException: New row height less than 1"
    //
    table.setDefaultRenderer(String.class, new MultiLineCellRenderer());
    JScrollPane scroll = new JScrollPane( table );
    getContentPane().add( scroll );
    setSize( 400, 130 );
    setVisible(true);
  }
 
  public static void main(String[] args) {
    MultiLineCellExample frame = new MultiLineCellExample();
    frame.addWindowListener( new WindowAdapter() {
      public void windowClosing( WindowEvent e ) {
        System.exit(0);
      }
    });
  }
}


Calse prinsipal
Código:
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.border.*;
import java.awt.*;
 
/**
 * @version 1.0 11/09/98
 */
 
public class MultiLineCellRenderer extends JTextArea implements TableCellRenderer {
 
  public MultiLineCellRenderer() {
    setLineWrap(true);
    setWrapStyleWord(true);
    setOpaque(true);
  }
 
  public Component getTableCellRendererComponent(JTable table, Object value,
               boolean isSelected, boolean hasFocus, int row, int column) {
    if (isSelected) {
      setForeground(table.getSelectionForeground());
      setBackground(table.getSelectionBackground());
    } else {
      setForeground(table.getForeground());
      setBackground(table.getBackground());
    }
    setFont(table.getFont());
    if (hasFocus) {
      setBorder( UIManager.getBorder("Table.focusCellHighlightBorder") );
      if (table.isCellEditable(row, column)) {
        setForeground( UIManager.getColor("Table.focusCellForeground") );
        setBackground( UIManager.getColor("Table.focusCellBackground") );
      }
    } else {
      setBorder(new EmptyBorder(1, 2, 1, 2));
    }
    setText((value == null) ? "" : value.toString());
    return this;
  }
}



Pero lo que quiero lograr es agregarle dicha propiedad a una tabla ya echa en javax swing (del modo gráfico en netbeans) y que tenga esta misma propiedad...

Espero puedan ayudarme que ya estuve investigando e intentando y probando un buen rato y sin resultado aparente...

Etiquetas: clase, jsp, jtable, netbeans, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:02.