JTable中随意位置插入列
来源:互联网 发布:淘宝漏肩装舞蹈服 编辑:程序博客网 时间:2024/04/27 05:35
javax.swing.jtalbe可谓是操作数据库的时候最长使用的组件了,在末尾加入一个新列API中都能找到,但是根据使用的需求和对当列值的操作可能需要在任意位置插入一个新的column,并且实时改变每个column的索引这样才能确保数据的正确
java api中没有提供在任意位置插入列的函数,但是我们可以在末尾加入列后使用DefaultTableColumnModel的
moveColumn(column1,column2)将column1移动到column2的位置.其他的列向后或前移动另外JTable中就提供了这个函数但是功能不一样,JTable中移动只是对视图进行了移动但是列的索引没有跟着改变
以下用代码做测试:
插入前表头(只截取后面部分):
以下代码为在tk,jk,vk,TK,VK,JK后加入新的一列列名为其列名+点号
public void accessStrength() {
getTheStrengthBytype("vk", vk_weak, vk_middle);
getTheStrengthBytype("jk", jk_weak, jk_middle);
getTheStrengthBytype("tk", tk_weak, tk_middle);
getTheStrengthBytype("VK", vk_weak, vk_middle);
getTheStrengthBytype("JK", jk_weak, jk_middle);
getTheStrengthBytype("TK", tk_weak, tk_middle);
updateTheui("vk");//加完需要的列后逐个进行移动
updateTheui("jk");
updateTheui("tk");
updateTheui("VK");
updateTheui("JK");
updateTheui("TK");
}
public void updateTheui(String columnname)
{
int columnindex = -1;
int sindex = -1;
try {
columnindex = ((DefaultTableColumnModel) lefttable.getColumnModel())
.getColumnIndex(columnname);
} catch (IllegalArgumentException e) {
}
try {
sindex = ((DefaultTableColumnModel) lefttable.getColumnModel())
.getColumnIndex(columnname + "・");
} catch (IllegalArgumentException e) {
}
if(columnindex!=-1&&sindex!=-1)
((DefaultTableColumnModel) lefttable.getColumnModel()).moveColumn(
sindex,
columnindex + 1 <= lefttable.getColumnCount() ? columnindex + 1
: columnindex);
}
public boolean getTheStrengthBytype(String columnname, double weak,
double middle) {
boolean rs = true;
int columnindex = -1;
int sindex = -1;
try {
columnindex = ((DefaultTableColumnModel) lefttable.getColumnModel())
.getColumnIndex(columnname);
} catch (IllegalArgumentException e) {
JOptionPane
.showMessageDialog(null, "文件类型错误:找不到需要计算的列" + columnname);
return rs;
}
try {
sindex = ((DefaultTableColumnModel) lefttable.getColumnModel())
.getColumnIndex(columnname + "・");
} catch (IllegalArgumentException e) {
}
if (sindex == -1) {
((DefaultTableModel) lefttable.getModel()).addColumn(columnname
+ "・");
sindex = lefttable.getColumnCount() - 1;
}
}
运行结果如下
如果在每加入一列后就进行移动,代码为
updateTheui("vk");//加完需要的列后逐个进行移动
updateTheui("jk");
updateTheui("tk");
updateTheui("VK");
updateTheui("JK");
updateTheui("TK");
这部分去掉并在getTheStrengthBytype方法后加上
updateTheui(columnname);
运行结果如下:
- JTable中随意位置插入列
- JTable中插入图片
- 在datatable中,在指定位置插入列
- 数据库中如何在指定的位置插入列
- Word中随意插入独立页码
- JTable中向某一列添加JRadioButton
- JTable的列中添加JCheckBox组件
- 在指定位置插入新列
- 在指定位置插入新列
- jsp中使用js随意移动图片位置效果
- WPF中拖动控件,实现位置随意摆放[1]
- WPF中拖动控件,实现位置随意摆放[2]
- WPF中拖动控件,实现位置随意摆放
- excel_将A列内容插入B列,位置随机
- java swing jtable 设置列中内容对齐方式
- java JTable 中设置没列的宽度
- 【java】JTable中某一列设置为下拉列表
- EXCEL中 A表示第一列。。。。AA27列,问随意一组字母是多少列
- ASP.NET中文乱码问题解决
- 一直拖拉欠没做完的事情
- 项目经理的工具箱---走出软件作坊:三五个人十来条枪 如何成为开发正规军(三)
- HTML代码注释
- this is my first login
- JTable中随意位置插入列
- 在存储过程中调用外部的动态连接库(MS SQL Server7.0/2000环境)
- Linux 添加系统字体
- 求用VB和AXXESS做的学生上机数据库
- 地震救灾急速拉近中日民间情感 超乎所有人预料
- 关于魔兽世界demo
- js asp.net幻灯片
- Client Side Validation of GridView control with javascript
- asp.net里导出excel表方法汇总