首先,我搜索了一整天,尝试了很多解决方案,但没有人工作..
我想在我的jtable中包装行...所以我创建了自己的cellrenderer ...但是我的JTable在滚动时有些迟钝......
这是我的cellrenderer:
public class LineWrapCellRenderer extends JTextArea implements TableCellRenderer{
public LineWrapCellRenderer(){
this.setWrapStyleWord(true);
this.setLineWrap(true);
this.setOpaque(true);
}
public Component getTableCellRendererComponent(
JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column) {
if (value != null) {
setText(value.toString());
} else {
setText("");
}
return this;
}
}
我已使用
设置渲染器setDefaultRenderer(String.class, CellRenderer);
我的tablemodel看起来像这样:
return new DefaultTableModel(data, columnNames){
Object tempRetVal = new Object();
Object RetVal = new Object();
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
@Override
public Class<?> getColumnClass(int columnIndex) {
tempRetVal = Object.class;
RetVal = Object.class;
if(getRowCount() > 0){
for(int i = 0; i<getRowCount();i++){
tempRetVal = getValueAt(i, columnIndex);
if(tempRetVal!=null){
RetVal = tempRetVal;
}
}
}
return RetVal.getClass();
}
};
提前致谢