java自定义表格_java从入门到精髓 - Swing表格自定义JTable

本文介绍如何在Java Swing中自定义表格组件JTable,包括设置表头、数据填充、禁止列重排、单元格居中及不可编辑等功能。通过创建MyTable类继承JTable,并设置各种属性,实现了一个具有特定样式的表格。
摘要由CSDN通过智能技术生成

importjava.awt.BorderLayout;importjava.awt.Color;importjava.util.Vector;importjavax.swing.JFrame;importjavax.swing.JScrollPane;importjavax.swing.JTable;importjavax.swing.ListSelectionModel;importjavax.swing.table.DefaultTableCellRenderer;importjavax.swing.table.JTableHeader;importjavax.swing.table.TableCellRenderer;publicclassJTableDefineTestextendsJFrame{publicJTableDefineTest()

{super();

setTitle("表格");

setBounds(100,100,500,500);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JScrollPane scrollPane=newJScrollPane();//支持滚动getContentPane().add(scrollPane,BorderLayout.CENTER);

String[] columnNames={"A","B","C","D","E","F","G"};

Vector columnNameV=newVector();//获得表头for(intcolumn=0;column

{

columnNameV.add(columnNames[column]);

}

Vector tableValueV=newVector();for(introw=1;row<21;row++)//获得数据{

Vector rowV=newVector();for(intcolumn=0;column

{

rowV.add(columnNames[column]+row);//数据}

tableValueV.add(rowV);

}

JTable table=newMyTable(tableValueV,columnNameV);//自定义的表格table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);//关闭表格列的自动调整功能。table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);//单选table.setSelectionBackground(Color.YELLOW);

table.setSelectionForeground(Color.RED);

table.setRowHeight(30);

scrollPane.setViewportView(table);//支持滚动}/***@paramargs*/publicstaticvoidmain(String[] args) {//TODO Auto-generated method stubJTableDefineTest jTableDefineTest=newJTableDefineTest();

jTableDefineTest.setVisible(true);

}

}classMyTableextendsJTable//实现自定义类{/****/privatestaticfinallongserialVersionUID=1L;publicMyTable()

{

}publicMyTable(Vector rowData ,Vector columnNames)

{super(rowData,columnNames);

}/*** @Override*/publicJTableHeader getTableHeader()

{

JTableHeader tableHeader=super.getTableHeader();

tableHeader.setReorderingAllowed(false);//设置表格列不可重排DefaultTableCellRenderer hr=(DefaultTableCellRenderer)tableHeader.getDefaultRenderer();//获得表格头的单元格对象hr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);//列名居中returntableHeader;

}/*** @Override*/publicTableCellRenderer getDefaultRenderer(Class>columnClass)

{

DefaultTableCellRenderer cr=(DefaultTableCellRenderer)super.getDefaultRenderer(columnClass);

cr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);//单元格内容居中returncr;

}/*** @Override*/publicbooleanisCellEditable(introw,intcolumn)

{returnfalse;//单元格不可修改}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值