JTable - 在同一个单元格中包含多行数据

时间:2013-09-06 06:40:44

标签: java swing jtable

我正面临着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());

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

0 个答案:

没有答案