JTable简单实用,实现显示,指定行列选择,内容不可编辑,设置每列宽度,添加监听事件,获取点击的行列和对应的内容.

JTable简单实用,实现显示,指定行列选择,内容不可编辑,设置每列宽度

代码如下

import javax.swing.*;
import java.util.*;
import java.awt.event.*;
import javax.swing.table.DefaultTableModel;
public class SimpelTable{

	JFrame jf=new JFrame("简单表格");
	JTable table;
	Vector vectorData=new Vector();//每行数据
	Vector columName=new Vector();//列的名称

	public void init(){
		columName.addElement("id");
		columName.addElement("性别");

		int id=0;
		for(int i=0;i<100;i++){
			vectorData.addElement(getDate(columName.size(),i));
		}
		DefaultTableModel TableMode =new DefaultTableModel(vectorData,columName);
		//设置内容不可以编辑
		table=new JTable(TableMode){
			public boolean isCellEditable(int rowIndex,int ColIndex){
				return false;
			}
		};
		//设置每次只能选中一行
		table.setCellSelectionEnabled(true);
		//设置表格的列的宽度
		table.getColumnModel().getColumn(0).setPreferredWidth(100);
		table.getColumnModel().getColumn(1).setPreferredWidth(200);
		//放大的时候也不会变型
		table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
		//添加监听事件
		table.addMouseListener(new MouseAdapter(){
			public void mouseClicked(MouseEvent event){
				if(2==event.getClickCount()){//双击事件
					int row=table.rowAtPoint(event.getPoint());
					int col=table.columnAtPoint(event.getPoint());
					System.out.println("行:"+row+"列"+col);//注意起始索引
					//获取指定行和列的值
					System.out.println("内容:"+table.getValueAt(row,col).toString());
				}

			}
		});

		jf.add(new JScrollPane(table));
		jf.pack();
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		jf.setVisible(true);
	}
	//存储
	public static Vector getDate(int size,int i){
		Vector<String> dataString=new Vector<String>();
		for(int j=0;j<size;j++){
			dataString.addElement(i+"DWA");
			i++;
		}
		return dataString;
	}
	public static void main(String[] args){
		new SimpelTable().init();
	}
}

运行结果

 

参考资源链接:[Swing JTable 属性与操作详解](https://wenku.csdn.net/doc/6412b54bbe7fbd1778d42a28?utm_source=wenku_answer2doc_content) 在使用Swing库中的JTable组件构建用户界面时,经常需要对表格的进行精细控制,以提升用户体验和数据展示效果。对于宽的设置,可以使用`TableColumn`对象的`setPreferredWidth()`、`setMaxWidth()`和`setMinWidth()`方法来分别设置宽的首选值、最大值和最小值。例如,要设置第一的首选宽度为30像素,可以使用以下代码:`TableColumn firstColumn = table.getColumnModel().getColumn(0); firstColumn.setPreferredWidth(30);`。 如果需要使表头不可编辑,可以通过自定义`DefaultTableModel`并在其中重写`isCellEditable()`方法,使其对所有单元格返回`false`。例如:`DefaultTableModel model = new DefaultTableModel() { public boolean isCellEditable(int row, int column) { return false; } };`。 关于宽的自动调整,可以通过`setAutoResizeMode()`方法来控制。如果想要关闭自动调整宽的功能,可以设置模式为`AUTO_RESIZE_OFF`。随后,你可以手动调整每个`TableColumn`的宽度,以适应内容和布局需求。 这些控制方法都是基于对Swing JTable组件深入理解后才能有效运用的,建议开发者在实践中结合《Swing JTable 属性与操作详解》一书中的详细讲解,来更加熟练地应用这些技术和方法,从而达到对JTable的精确控制,实现更加复杂和动态的用户界面。 参考资源链接:[Swing JTable 属性与操作详解](https://wenku.csdn.net/doc/6412b54bbe7fbd1778d42a28?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值