14. 65. 1. ListSelectionModel rowSelMod = JTable.getSelectionModel();

 

import java.awt.Dimension;
import java.util.Date;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;


public class ListSelectionModelDemo implements ListSelectionListener{
	String[] headings = { "Name", "Customer ID", "Order #", "Status" };

	Object[][] data = { { "A", new Integer(3), "0", new Date() },
	      { "B", new Integer(6), "4", new Date() }, { "C", new Integer(9), "9", new Date() },
	      { "D", new Integer(7), "1", new Date() }, { "E", new Integer(4), "1", new Date() },
	      { "F", new Integer(8), "2", new Date() }, { "G", new Integer(6), "1", new Date() } };

	JTable jtabOrders = new JTable(data, headings);
	TableModel tm;

	public ListSelectionModelDemo(){
		JFrame jfrm = new JFrame("JTable Event Demo");
	    jfrm.setSize(400, 200);
	    jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

	    //返回此表视口的首选大小。 preferred优先 
	    jtabOrders.setPreferredScrollableViewportSize(new Dimension(420,62));
	    
	    //此接口表示任何组件的当前选择状态,该组件显示一个具有稳定索引的值列表。
	    ListSelectionModel rowSelMod = jtabOrders.getSelectionModel();//定义一个选择对像
	    ListSelectionModel colSelMod = jtabOrders.getColumnModel().getSelectionModel();
	    
	    rowSelMod.addListSelectionListener(this);//自动调用valueChanged方法
	    colSelMod.addListSelectionListener(this);
	    
	    tm = jtabOrders.getModel();//把tm与本表连接,初始化
	    
	    tm.addTableModelListener(new TableModelListener() {

	        public void tableChanged(TableModelEvent tme) {
	          if (tme.getType() == TableModelEvent.UPDATE) {
	            System.out.println("Cell " + tme.getFirstRow() + ", " + tme.getColumn() + " changed."
	                + " The new value: " + tm.getValueAt(tme.getFirstRow(), tme.getColumn()));
	          }
	        }
	      });

	    
	    jfrm.add(new JScrollPane(jtabOrders));
	    jfrm.setVisible(true);
	    
	}
	

	@Override
	public void valueChanged(ListSelectionEvent e) {
		// TODO Auto-generated method stub
		String str = "选择了行(s):";
		int[] rows = jtabOrders.getSelectedRows();//把它获得的行交给rows  行!
		for(int i = 0; i<rows.length; i++){//循环行交给str
			str += rows[i] + " ";
		}
		
		str += "选择了列(s):";
		int[] cols = jtabOrders.getSelectedColumns();//把获得的列交给cols数组中
		
		for(int i = 0; i<cols.length; i++){//循环列交给str                列!
			str += cols[i] + " ";
		}
		
		str += "选择的单元格:" + jtabOrders.getSelectedRow() + "," + jtabOrders.getSelectedColumn();
		System.out.println(str);
	}
	
	public static void main(String[] args) {
		new ListSelectionModelDemo();
	}

}


 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值