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...