JAVA SWING JTable使用

本文介绍了使用 Java Swing 中 JTable 控件的基本操作方法,包括创建表格、插入和删除行数据、选择行、以及如何在表格中插入图像等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本人学习java一段时间了,但是以前是学C\C++的,因为工作需要,需要学习java swing开发,但我学的并不系统,只是为了能正常使用而已,所以有什么说错或着不对的请见谅


1.创建一个JTable

String[]  bankNoteColumnNames = {"col1", "col2"}; 
DefaultTableModel  tableModel = new DefaultTableModel(null, bankNoteColumnNames);
		bankNoteTable = new JTable(tableModel) {
		    /**
			 * 
			 */
			private static final long serialVersionUID = -622843314036218123L;

			public boolean isCellEditable(int row, int column) {
		        return false;
		       }
		};

上面是创建一个两列,列名为col1,col2,行数据为null的一个单元格不可编辑的table


2.插入行数据

Object []obj = new Object[2];
obj[1] = "fisrt"
obj[2] = 2; 
tableModel.addRow(obj);


单元格数据可以是字符串,整形,还可以是图片,只要插入的数组类型为Object对象类型(插入图片的话需要重写列对象,详情请看下面),再调用JTable的数据管理模型tableModel,就可以直接插入


3.删除行数据

全部清空列表可以这样

tableModel.setRowCount(0);
单行删除可以这样

tableModel.removeRow(row);


4.让某一行选中或者多行选择

bankNoteTable.getSelectionModel().addSelectionInterval(index1,index2);

index为行序号,从0开始,单行就是index1=index2,多行就是index2 > index1, 这个语句可以多次执行而不会影响之前的选中结果,所以可以达到选中多行不连续的效果,比如

bankNoteTable.getSelectionModel().addSelectionInterval(0,0);
bankNoteTable.getSelectionModel().addSelectionInterval(2,2);
bankNoteTable.getSelectionModel().addSelectionInterval(4,4);

5.某一列插入图像
先重写一个类(单元格渲染器)

class TableImageCell extends DefaultTableCellRenderer{
	/**
	 * 
	 */
	private static final long serialVersionUID = -103231327032740445L;

	public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column){
		setIcon(null); 
		setBorder(null); 
		if(value instanceof ImageIcon){
			setIcon((Icon) value);
			if(isSelected) setBorder(new LineBorder(Color.red));
		}else
			if(value instanceof String) setText((String) value);
			else setText("");
		return this;
	}
}

bankNoteTable.getColumnModel().getColumn(1).setCellRenderer(new TableImageCell()); //1为列序号
Object []obj = new Object[2];
obj[1] = "fisrt"
obj[2] = new ImageIcon(path);  //path为图像路径
tableModel.addRow(obj);
<pre code_snippet_id="306530" snippet_file_name="blog_20140422_7_109886" name="code" class="html"><pre code_snippet_id="306530" snippet_file_name="blog_20140422_7_109886" name="code" class="java"><pre code_snippet_id="306530" snippet_file_name="blog_20140422_7_109886">













                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值