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();
}
}
运行结果