• 实现Java 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 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

  • 相关阅读:
    自定义Filter服务
    filter 以及 orderBy的使用
    ng-repeat-start ng-repeat-end 的使用
    ng-repeat 与ng-switch的简单应用
    ng-bind-html 的使用
    Oracle instr用法
    Oracle left查询案例
    Oracle case用法
    mysql 导出导入sql
    Gson解析复杂JSON对象
  • 原文地址:https://www.cnblogs.com/huasili/p/4102938.html
Copyright © 2020-2023  润新知