java Swing表格操作

删除表格中的某一列

* 要删除列必须使用TableColumnModel界面定义的removeColumn()方法。因此我闪先由JTable类的getColumnModel
* ()方法取得
* TableColumnModel对象,再由TableColumnModel的getColumn()方法取得要删除列的TableColumn
* .此TableColumn对象当作是
* removeColumn()的参数。删除此列完毕后必须重新设置列数,也就是使用DefaultTableModel的setColumnCount
* ()方法来设置。
*/
public void actionPerformed(ActionEvent e) 
{

 if (e.getActionCommand().equals("delete"))
  {
   int columncount = defaultModel.getColumnCount() - 1;
   if (columncount >= 0)// 若columncount<0代表已经没有任何列了。
  {
   TableColumnModel columnModel = table.getColumnModel();
   TableColumn tableColumn = columnModel.getColumn(columncount);
   columnModel.removeColumn(tableColumn);
   defaultModel.setColumnCount(columncount);
  }
}

隐藏表格中的某一列

/**
* 隐藏JTable中不需要显示的列
* @param table 需要隐藏列的JTable
* @param colIndex 需要隐藏的列的下标(JTable列下标从0开始)
*/
public static void hide(JTable table, int[] colIndex) {

   DefaultTableColumnModel dcm = (DefaultTableColumnModel) table //获取列模型
     .getColumnModel();

   for (int i = 0; i < colIndex.length; i++) {

    dcm.getColumn(colIndex[i]).setPreferredWidth(0);
    dcm.getColumn(colIndex[i]).setMinWidth(0);
    dcm.getColumn(colIndex[i]).setMaxWidth(0);

   }

}

第二种
把model的数据移掉就行了
再fireTableRowsDeleted(row, row);

第三种
public void removeColumn(Object columnName)
    {
        int index = findColumn((String)columnName);
        for(int i=0;i<getRowCount();i++)
        {
            Vector rowVector = (Vector)this.dataVector.get(i);
            rowVector.removeElementAt(index);
        }

        this.columnIdentifiers.remove(columnName);        
        fireTableStructureChanged();
    }


下面有四种方法,估计好用的应该是第三种吧。
1.用JAVA自带的函数
public static boolean isNumeric(String str){
for (int i = str.length();--i>=0;){
if (!Character.isDigit(str.charAt(i))){
return false;
}
}
return true;
}
2.正则表达式
public static boolean isNumeric(String str){
Pattern pattern = Pattern.compile("[0-9]*");
return pattern.matcher(str).matches();
}
3.还是正则表达式
public static boolean isNumeric(String str){
if(str.matches("\\d*"){
return true;
}else{
return false;
}
}
4.用ascii码
public static boolean isNumeric(String str){
for(int i=str.length();--i>=0;){
int chr=str.charAt(i);
if(chr<48 || chr>57)
return false;
}
return true;
}


弹出式添加信息

public void actionPerformed(ActionEvent e) {
			   JFrame addFrame=new JFrame("添加计划");
			 
			   String []attribute={"课程编号","班级编号","课程性质","课程名称","课时","课程性质"};
			   String [][]rowdata= new String[1][6];
					   				
			   DefaultTableModel df=new DefaultTableModel(rowdata,attribute); 
			   JTable addTable=new JTable(df);
			   JScrollPane scrollPane = new JScrollPane(addTable);
			   addFrame.getContentPane().add(scrollPane,BorderLayout.CENTER);
			   addTable.setPreferredScrollableViewportSize(new Dimension(500,100));
//			  
//			  
			    System.out.println("addItem:");
			   	addFrame.setLocation(100, 60);
				addFrame.setVisible(true);
				addFrame.pack();
				addFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
			   
			}
			
		});


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值