Java从入门到精通 - Swing表格JTable选中行及列的位移

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class JTableOperation extends JFrame {
 public JTableOperation()
 {
  super();
  setTitle("表格");
  setBounds(100,100,500,500);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  JScrollPane scrollPane = new JScrollPane();   //支持滚动
  getContentPane().add(scrollPane,BorderLayout.CENTER);
  String[] columnNames = {"A","B","C","D","E","F","G"};
  Vector columnNameV = new Vector();    //获得表头
  for(int column = 0;column<columnNames.length;column++)
  {
   columnNameV.add(columnNames[column]);
  }
  Vector tableValueV = new Vector();
  for(int row = 1;row<21;row++)    //获得数据
  {
   Vector rowV = new Vector();
   for(int column = 0;column<columnNames.length;column++)
   {
    rowV.add(columnNames[column]+row);  //数据
   }
   tableValueV.add(rowV);
  }
  final JTable table = new MyTable(tableValueV,columnNameV);   //自定义的表格 请参考上一页上的自定义类
  table.setRowSelectionInterval(1, 3); //设置选择中行
  table.addRowSelectionInterval(5, 5);  //追加
  scrollPane.setViewportView(table);
  JPanel buttonPanel =new JPanel();   //按钮面板
  getContentPane().add(buttonPanel,BorderLayout.SOUTH);  //在下方。
  JButton selectAllButton = new JButton("全部选择");
  selectAllButton.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){
    table.selectAll();    //选中所有的行
   }
  });
  
  buttonPanel.add(selectAllButton);
  JButton clearSelectionButton = new JButton("取消选择");
  clearSelectionButton.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){
    table.clearSelection();  //取消选择
   }
  });
  buttonPanel.add(clearSelectionButton);
  System.out.println("表格共有:"+table.getRowCount()+"行 "+ table.getColumnCount()+"列");
  System.out.println("共有:"+table.getSelectedRowCount()+"行被选中");
  System.out.println("第三行的状态:"+table.isRowSelected(2)); //第三行
  System.out.println("第5行的状态:"+table.isRowSelected(4));//第5行
  System.out.println("被选中的第一行的索引:"+table.getSelectedRow());   //被选中的第一行的索引,没有选中返回-1
  int [] selectRows = table.getSelectedRows();  //获得所有被选中的索引
  System.out.println("以下为所有被选中的行:");
  for(int i=0;i<selectRows.length;i++){
   System.out.println(selectRows[i]+" ");
  }
  
  System.out.println();
  System.out.println("列移动前第2列的名称是:"+table.getColumnName(1));  //第2列
  System.out.println("列移动前第2行第2列的值:"+table.getValueAt(1, 1)); //2,2
  table.moveColumn(1, 5);
  System.out.println("列移动后第2列的名称:"+table.getColumnName(1));
  System.out.println("列移动后第2行第2列的值:"+table.getValueAt(1, 1));
 }
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  //JTableOperation
  JTableOperation jTableOperation= new JTableOperation();
  jTableOperation.setVisible(true);
 }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值