代码如下

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 Main extends DefaultTableCellRenderer {
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();
}
}

  运行结果
<ignore_js_op>

详细说明:http://java.662p.com/thread-3683-1-1.html

最新文章

  1. c 头文件&lt;ctype.h&gt;(一)
  2. fifo write
  3. 2014 Asia AnShan Regional Contest --- HDU 5078 Osu!
  4. jquery之别踩白块游戏的实现
  5. dede顶级栏目直接显示内容
  6. POJ2125 Destroying The Graph (最小点权覆盖集)(网络流最小割)
  7. IL指令集(转)
  8. jQuery相关知识
  9. 【LeetCode】Sum Root to Leaf Numbers
  10. EF LINQ根据某个字段去除重复行
  11. php倒计时防刷新
  12. APP网络测试要点和弱网模拟
  13. velocity学习总结
  14. jpa的查询语法
  15. Python内存优化:Profile,slots,compact dict
  16. vsftpd控制用户禁止访问上级目录 只能访问自己目录
  17. Cordova开发App入门之创建android项目
  18. air报错 Error: Error #3000: Illegal path name
  19. curl基本使用
  20. Qt的安装和使用中的常见问题(简略版)

热门文章

  1. Guava 8-区间
  2. Spring切入点表达式常用写法
  3. CSS设置图片垂直居中的方法
  4. 使用NodeJS将XML解析成JSON及性能比较
  5. c# partial类
  6. C++学习38 string字符串的增删改查
  7. JAVA 回调
  8. InnoSetup打包exe安装应用程序,并添加卸载图标 转
  9. Oracle corrupt block(坏块) 详解
  10. Codeforces Round #223 (Div. 2) A