我正面临 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());
但是通过这样做,如果我在第一行第三列中插入数据,则该数据会自动打印在所有单元格中。我想在每个单元格中添加单独的文本。