我正面临着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列插入数据,则该数据将自动打印在所有单元格中。我想在每个单元格中添加单独的文本。