赞
踩
import javax.swing.*; import javax.swing.border.Border; import javax.swing.table.DefaultTableCellRenderer; import java.awt.*; /** * 表头渲染 */ public class TableHeaderRender { public static void main(String[] args) { JFrame jf = new JFrame("表头渲染"); jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); // 创建内容面板 JPanel panel = new JPanel(); // 表头(列名) String[] columnNames = {"序号", "姓名", "身高", "体重"}; // 表格所有行数据 Object[][] rowData = { {1, "张三", 180, 80 }, {2, "李四", 170, 80}, {3, "王五", 175, 70} }; // 创建一个表格,指定 表头 和 所有行数据 JTable table = new JTable(rowData, columnNames); // 设置滚动面板视口大小(超过该大小的行数据,需要拖动滚动条才能看到) table.setPreferredScrollableViewportSize(new Dimension(500, 400)); // 把表格放到滚动面板中(表头将自动添加到滚动面板顶部) JScrollPane scrollPane = new JScrollPane(table); // 添加滚动面板到内容面板 panel.add(scrollPane); // 设置 内容面板 到 窗口 jf.setContentPane(panel); jf.pack(); jf.setLocationRelativeTo(null); jf.setVisible(true); }
/** * 表头渲染器 */ private static class Renderer extends DefaultTableCellRenderer { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { final Border border = BorderFactory.createEmptyBorder(0, 5, 0, 0); JLabel label; // 创建具有指定文本、图像和水平对齐方式的JLabel label = new JLabel(value.toString(), null, JLabel.LEFT); // 设置文本在图像前面 label.setHorizontalTextPosition(JLabel.LEFT); // 设置边框 label.setBorder(border); // 设置字体颜色 setForeground(Color.RED); // 设置提示文本 label.setToolTipText("提示文本"); return label; } }
// 设置表头渲染器
table.getTableHeader().setDefaultRenderer(new Renderer());
鼠标移动到表头位置,出现悬浮提示文本
import javax.swing.*; import javax.swing.border.Border; import javax.swing.table.DefaultTableCellRenderer; import java.awt.*; /** * 表头渲染 */ public class TableHeaderRender { public static void main(String[] args) { JFrame jf = new JFrame("表头渲染"); jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); // 创建内容面板 JPanel panel = new JPanel(); // 表头(列名) String[] columnNames = {"序号", "姓名", "身高", "体重"}; // 表格所有行数据 Object[][] rowData = { {1, "张三", 180, 80 }, {2, "李四", 170, 80}, {3, "王五", 175, 70} }; // 创建一个表格,指定 表头 和 所有行数据 JTable table = new JTable(rowData, columnNames); // 设置表头渲染器 table.getTableHeader().setDefaultRenderer(new Renderer()); // 设置表格内容颜色 table.setForeground(Color.BLACK); // 字体颜色 table.setFont(new Font(null, Font.PLAIN, 14)); // 字体样式 table.setSelectionForeground(Color.DARK_GRAY); // 选中后字体颜色 table.setSelectionBackground(Color.LIGHT_GRAY); // 选中后字体背景 table.setGridColor(Color.GRAY); // 网格颜色 // 设置表头 table.getTableHeader().setFont(new Font(null, Font.BOLD, 14)); // 设置表头名称字体样式 table.getTableHeader().setForeground(Color.RED); // 设置表头名称字体颜色 table.getTableHeader().setResizingAllowed(false); // 设置不允许手动改变列宽 table.getTableHeader().setReorderingAllowed(false); // 设置不允许拖动重新排序各列 // 设置行高 table.setRowHeight(30); // 第一列列宽设置为40 table.getColumnModel().getColumn(0).setPreferredWidth(40); // 设置滚动面板视口大小(超过该大小的行数据,需要拖动滚动条才能看到) table.setPreferredScrollableViewportSize(new Dimension(500, 400)); // 把表格放到滚动面板中(表头将自动添加到滚动面板顶部) JScrollPane scrollPane = new JScrollPane(table); // 添加滚动面板到内容面板 panel.add(scrollPane); // 设置 内容面板 到 窗口 jf.setContentPane(panel); jf.pack(); jf.setLocationRelativeTo(null); jf.setVisible(true); } /** * 表头渲染器 */ private static class Renderer extends DefaultTableCellRenderer { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { final Border border = BorderFactory.createEmptyBorder(0, 5, 0, 0); JLabel label; // 创建具有指定文本、图像和水平对齐方式的JLabel label = new JLabel(value.toString(), null, JLabel.LEFT); // 设置文本在图像前面 label.setHorizontalTextPosition(JLabel.LEFT); // 设置边框 label.setBorder(border); // 设置字体颜色 setForeground(Color.RED); // 设置提示文本 label.setToolTipText("提示文本"); return label; } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。