java swing Jtable 自定义 表格
2017-04-06 22:43
1191 查看
package com.js; import java.awt.*; import java.util.Vector; import javax.swing.*; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.JTableHeader; import javax.swing.table.TableCellRenderer; public class Java_7_Swing_JTable_3 extends JFrame { public Java_7_Swing_JTable_3(){ super(); setTitle("自定义表格"); setBounds(100,100,500,375); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JScrollPane scrollPane = new JScrollPane(); getContentPane().add(scrollPane, BorderLayout.CENTER); String[] columnNames = {"A","B","C","D","E","F","G"}; Vector<String> columnNameV = new Vector<>(); for(int column = 0;column < columnNames.length;column++){ columnNameV.add(columnNames[column]); } Vector<Vector<String>> tableValueV = new Vector<>(); for(int row = 1;row<21;row++){ Vector<String> rowV = new Vector<>(); for(int column = 0;column < columnNames.length;column++){ rowV.add(columnNames[column]+row); } tableValueV.add(rowV); } JTable table = new MTable(tableValueV,columnNameV); //关闭表格列的自动调整功能 table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); // 选择模式为单选 table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // 被选择行的背景为黄色 table.setSelectionBackground(Color.YELLOW); // 被选择行的前景色(文字颜色)为红色 table.setSelectionForeground(Color.RED); // 表格的行高为30像素 table.setRowHeight(30); scrollPane.setViewportView(table); } private class MTable extends JTable{ public MTable(Vector<Vector<String>> rowData,Vector<String> columnNames){ super(rowData,columnNames); } @Override public JTableHeader getTableHeader(){//定义表格头 // 获取表格头对象 JTableHeader tableHeader = super.getTableHeader(); tableHeader.setReorderingAllowed(false);//设置表格列不可重排 DefaultTableCellRenderer hr = (DefaultTableCellRenderer)tableHeader.getDefaultRenderer();//获得表格头单元格对象 // 设置列名居中显示 hr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER); return tableHeader; } // 定义单元格 @Override public TableCellRenderer getDefaultRenderer(Class<?> columnClass){ DefaultTableCellRenderer cr = (DefaultTableCellRenderer)super.getDefaultRenderer(columnClass);// 获得表格的单元格对象 // 设置单元格内容居中显示 cr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER); return cr; } @Override public boolean isCellEditable(int row,int column){ //表格不可编辑 return false; } } public static void main(String[] args) { // TODO 自动生成的方法存根 Java_7_Swing_JTable_3 frame = new Java_7_Swing_JTable_3(); frame.setVisible(true); } }
相关文章推荐
- JavaSwing 表格JTable内容居中 自定义TableModel
- java从入门到精髓 - Swing表格自定义JTable
- java从入门到精髓 - Swing表格自定义JTable 选中行及取消选中
- Java从入门到精通 - Swing表格自定义JTable
- Swing表格自定义JTable (表格可编辑)
- Java Swing JTable 表格【2:创建空表格】
- java从入门到精髓 - Swing表格JTable利用tableModel添加行修改行删除行
- Java Swing JTable 表格【15:组合列表框作为表格元素】
- Java Swing JTable 表格【11:表格使用自定义渲染器】
- Java Swing中的表格(JTable)和树(JTree)组件使用实例
- Java Swing JTable 表格【8:表格使用选择器SelectionModel】
- java从入门到精髓 - Swing表格JTable不支持滚动
- Java Swing JTable 表格【14:表格的排序和过滤】
- Java Swing编程:JTable表格
- java swing sql->jtable表格 查询
- Java Swing JTable 表格【1:创建表格填充数据】
- Java Swing JTable 表格【4:表格模型TableModel】
- Java Swing JTable 表格【5:表格模型AbstractTableModel】
- Java Swing JTable 表格【12:为表格的单元格指定文字说明】
- Java Swing JTable 表格【10:表格使用编辑器DefaultTableCellRenderer】