具有自定义Cell Renderer的JTable,在滚动时非常滞后并冻结

时间:2015-03-12 15:16:45

标签: java jtable tablecellrenderer

首先,我搜索了一整天,尝试了很多解决方案,但没有人工作..

我想在我的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();
    }

};

提前致谢

0 个答案:

没有答案