0

我正面临 JTable 的问题。在这个 jtable 中,如果文本太长而无法在一行中显示,我想将文本包装在同一个单元格中。

行高应自动调整以适合文本。

我正在做类似的事情:

public class MyCellRenderer extends JTextArea implements TableCellRenderer {
 public MyCellRenderer() {
   setLineWrap(true);
   setWrapStyleWord(true);
}

@Override
public Component getTableCellRendererComponent(JTable table, Object 
       value, boolean isSelected, boolean hasFocus, int row, int column) {
   try
   {
        setText(value.toString());
   }
   catch(NullPointerException npe)
   {
       java.util.logging.Logger.getLogger(MyCellRenderer.class.getName()).log(java.util.logging.Level.SEVERE, null, npe);
   }
   setSize(table.getColumnModel().getColumn(column).getWidth(),
           getPreferredSize().height);
   if (table.getRowHeight(row) != getPreferredSize().height) {
           table.setRowHeight(row, getPreferredSize().height);
   }
   return this;
   }
}

在具有 jtable 的类中,我要添加:

jTable1.getColumnModel().getColumn(2).setCellRenderer(new MyCellRenderer());

但是通过这样做,如果我在第一行第三列中插入数据,则该数据会自动打印在所有单元格中。我想在每个单元格中添加单独的文本。

4

0 回答 0