package JTable表头换行;
import java.awt.Component;   
import java.awt.Dimension;   
import java.awt.FontMetrics;   
  
import javax.swing.JLabel;   
import javax.swing.JTable;   
import javax.swing.UIManager;   
import javax.swing.table.DefaultTableCellRenderer;   
import javax.swing.table.JTableHeader;   
import javax.swing.table.TableColumnModel;   
  
public class HeaderRendererHh extends DefaultTableCellRenderer {   
  
    /**
	 * 因为JLabel可以解析html中的br,所以利用这个特点,
	 * 可以动态构建显示的标题,在换行处添加<br>标记,实现换行显示
	 */
	private static final long serialVersionUID = 1L;
	public Component getTableCellRendererComponent(JTable table, Object value,   
            boolean isSelected, boolean hasFocus, int row, int column) {   
  
        JTableHeader header = table.getTableHeader();   
        setForeground(header.getForeground());   
        setBackground(header.getBackground());   
        setFont(header.getFont());   
        setOpaque(true);   
        setBorder(UIManager.getBorder("TableHeader.cellBorder"));   
  
        // 得到列的宽度   
        TableColumnModel columnModel = table.getColumnModel();   
        int width = columnModel.getColumn(column).getWidth();   
  
        value = getShowValue(value.toString(), width);   
        setText(value.toString());   
        setSize(new Dimension(width, this.getHeight()));   
  
        setHorizontalAlignment(JLabel.CENTER);   
  
        return this;   
    }   
  
    private Object getShowValue(String value, int colWidth) {   
        // 根据当前的字体和显示值得到需要显示的宽度   
        FontMetrics fm = this.getFontMetrics(this.getFont());   
        int width = fm.stringWidth(value.toString());   
        int test = fm.stringWidth("好");   
        System.out.println(test * value.length());   
        System.out.println(width);   
        if (width < colWidth) {   
            return value;   
        }   
        StringBuffer sb = new StringBuffer("<html>");   
        char str;   
        int tempW = 0;   
        for (int i = 0; i < value.length(); i++) {   
            str = value.charAt(i);   
            tempW += fm.charWidth(str);   
            if (tempW > colWidth) {   
                sb.append("<br>");   
                tempW = 0;   
            }   
            sb.append(str);   
        }   
        sb.append("</html>");   
        return sb.toString();   
    }   
}
 最近下载更多
最近下载更多
                
                微信网友_7626337186549760     LV1
                8月4日
            
            
        
                taozhao     LV2
                1月20日
            
            
        
                深深之蓝     LV1
                2024年12月16日
            
            
        
                lk-sheep     LV1
                2024年12月2日
            
            
        
                duanjb     LV1
                2024年8月15日
            
            
        
                1219610676     LV4
                2023年12月7日
            
            
        
                1a2s3d4f5g6h     LV1
                2023年6月21日
            
            
        
                yaowusui     LV1
                2023年4月27日
            
            
        
                xizi10086     LV2
                2023年4月25日
            
            
        
                2252536772     LV21
                2022年11月9日
            
            
         最近浏览更多
最近浏览更多
                
                微信网友_7626337186549760     LV1
                8月4日
            
            
        
                pxqtsht     LV16
                2月21日
            
            
        
                taozhao     LV2
                1月20日
            
            
        
                深深之蓝     LV1
                2024年12月16日
            
            
        
                lk-sheep     LV1
                2024年12月2日
            
            
        
                duanjb     LV1
                2024年8月15日
            
            
        
                2860615178     LV4
                2024年5月29日
            
            
        
                3334004690     LV11
                2024年5月27日
            
            
        
                1219610676     LV4
                2023年12月7日
            
            
        
                李朝磊     LV18
                2023年12月3日
            
            
        
 
     
     
                