表头:标签标题与图标 : 表列 « 图形用户界面 « Java

En
Java
1. 图形用户界面
2. 三维图形动画
3. 高级图形
4. 蚂蚁编译
5. Apache类库
6. 统计图
7. 
8. 集合数据结构
9. 数据类型
10. 数据库JDBC
11. 设计模式
12. 开发相关类
13. EJB3
14. 电子邮件
15. 事件
16. 文件输入输出
17. 游戏
18. 泛型
19. GWT
20. Hibernate
21. 本地化
22. J2EE平台
23. 基于J2ME
24. JDK-6
25. JNDI的LDAP
26. JPA
27. JSP技术
28. JSTL
29. 语言基础知识
30. 网络协议
31. PDF格式RTF格式
32. 映射
33. 常规表达式
34. 脚本
35. 安全
36. Servlets
37. Spring
38. Swing组件
39. 图形用户界面
40. SWT-JFace-Eclipse
41. 线程
42. 应用程序
43. Velocity
44. Web服务SOA
45. 可扩展标记语言
Java 教程
Java » 图形用户界面 » 表列屏幕截图 
表头:标签标题与图标
表头:标签标题与图标
 
/*
Definitive Guide to Swing for Java 2, Second Edition
By John Zukowski     
ISBN: 1-893115-78-X
Publisher: APress
*/

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Polygon;

import javax.swing.Icon;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.UIManager;
import javax.swing.border.Border;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;

public class LabelHeaderSample {
  public static void main(String args[]) {
    Object rows[][] { { "one""ichi - \u4E00" },
        "two""ni - \u4E8C" }"three""san - \u4E09" },
        "four""shi - \u56DB" }"five""go - \u4E94" },
        "six""roku - \u516D" }"seven""shichi - \u4E03" },
        "eight""hachi - \u516B" }"nine""kyu - \u4E5D" },
        "ten""ju - \u5341" } };
    JFrame frame = new JFrame("Label Header");
    String headers[] "English""Japanese" };
    JTable table = new JTable(rows, headers);
    JScrollPane scrollPane = new JScrollPane(table);

    Icon redIcon = new DiamondIcon(Color.red);
    Icon blueIcon = new DiamondIcon(Color.blue);

    Border headerBorder = UIManager.getBorder("TableHeader.cellBorder");

    JLabel blueLabel = new JLabel(headers[0], blueIcon, JLabel.CENTER);
    blueLabel.setBorder(headerBorder);
    JLabel redLabel = new JLabel(headers[1], redIcon, JLabel.CENTER);
    redLabel.setBorder(headerBorder);

    TableCellRenderer renderer = new JComponentTableCellRenderer();

    TableColumnModel columnModel = table.getColumnModel();

    TableColumn column0 = columnModel.getColumn(0);
    TableColumn column1 = columnModel.getColumn(1);

    column0.setHeaderRenderer(renderer);
    column0.setHeaderValue(blueLabel);

    column1.setHeaderRenderer(renderer);
    column1.setHeaderValue(redLabel);

    frame.getContentPane().add(scrollPane, BorderLayout.CENTER);
    frame.setSize(300150);
    frame.setVisible(true);
  }
}

class DiamondIcon implements Icon {
  private Color color;

  private boolean selected;

  private int width;

  private int height;

  private Polygon poly;

  private static final int DEFAULT_WIDTH = 10;

  private static final int DEFAULT_HEIGHT = 10;

  public DiamondIcon(Color color) {
    this(color, true, DEFAULT_WIDTH, DEFAULT_HEIGHT);
  }

  public DiamondIcon(Color color, boolean selected) {
    this(color, selected, DEFAULT_WIDTH, DEFAULT_HEIGHT);
  }

  public DiamondIcon(Color color, boolean selected, int width, int height) {
    this.color = color;
    this.selected = selected;
    this.width = width;
    this.height = height;
    initPolygon();
  }

  private void initPolygon() {
    poly = new Polygon();
    int halfWidth = width / 2;
    int halfHeight = height / 2;
    poly.addPoint(0, halfHeight);
    poly.addPoint(halfWidth, 0);
    poly.addPoint(width, halfHeight);
    poly.addPoint(halfWidth, height);
  }

  public int getIconHeight() {
    return height;
  }

  public int getIconWidth() {
    return width;
  }

  public void paintIcon(Component c, Graphics g, int x, int y) {
    g.setColor(color);
    g.translate(x, y);
    if (selected) {
      g.fillPolygon(poly);
    else {
      g.drawPolygon(poly);
    }
    g.translate(-x, -y);
  }
}

class JComponentTableCellRenderer implements TableCellRenderer {
  public Component getTableCellRendererComponent(JTable table, Object value,
      boolean isSelected, boolean hasFocus, int row, int column) {
    return (JComponentvalue;
  }
}

           
         
  
Related examples in the same category
1. TableModel和ColumModelTableModel和ColumModel
2. 表格与自定义列模式表格与自定义列模式
3. 标题栏TableColumnModel标题栏TableColumnModel
4. 安装表列TableColumnModel安装表列TableColumnModel
5. 工具提示样本工具提示样本
6. 表ColumnModel和TableColumnModelListener表ColumnModel和TableColumnModelListener
7. 表Headerless实例表Headerless实例
8. 多行表头多行表头
9. 行号表头
10. 冻结列表头
11. Packing a Column of a JTable Component according to the header text
12. Packing a Column of a JTable Component according to the row data
13. 设置栏宽基于单元格
14. 设置表列,关闭自动调整
15. Get the columns from TableColumnModel in the order that they appear in the view
16. 获取列数
17. Returns the TableColumn associated with the specified column index in the model
18. Setting the Width of a Column in a JTable Component
19. Disable auto resizing, Set the first visible column to 100 pixels wide
20. Setting the Column Resize Mode of a JTable Component: Disable auto resizing
21. When the width of a column is changed, the width of the right-most column is changed
22. When the width of a column is changed, all columns to the right are resized
23. When the width of a column is changed, only the columns to the left and right of the margin change
24. When the width of a column is changed, the widths of all columns are changed
25. 在一个表格锁定列的宽度
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.