JTabel是Swing里的表格组件,它的行选取事件, 不是由JTabel直接接受的,而是通过给SelectionModel 添加ListSelectionListener 来对选取事件作出反应.
jtable.getSelectionModel().addListSelectionListener(....)支持单选, 多选, 鼠标上下移动选择等, 完整的表格选取参考代码如下
import java.awt.*import java.awt.event.*
import javax.swing.*
import javax.swing.event.*
public class TableDemo extends JFrame {
String[] names = { "姓名", "等级" }// 表格标题
String[][] data = { { "张三", "A" }, { "李四", "B" }, { "王五", "C" } }//表格数据
public TableDemo() {
JTable table = new JTable(data, names)
JScrollPane jsp = new JScrollPane(table)
add(jsp)
setSize(300, 200)
setLocationRelativeTo(null)
setDefaultCloseOperation(EXIT_ON_CLOSE)
// 先获取SelectionModel ,然后添加事件响应磨前器
table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
兄镇 if (!e.getValueIsAdjusting()) {
//支持拖动多选
int[] rows = table.getSelectedRows()
// int[] cols = table.getSelectedColumns()//选中的列
for (int i : rows) {
System.out.println("#方法一:\t" + table.getValueAt(i, 0) + "\t" + table.getValueAt(i, 1))
}
//支持单选
// int row=table.getSelectedRow()//选中行
// //int col=table.getSelectedColumn()//选中列
// System.out.println("方法一:"+table.getValueAt(row, 0)+"\t"+table.getValueAt(row, 1))
}
}
})
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
new TableDemo().setVisible(true)//窗口可见
瞎尘清 }
})
}
}
<span style="font-family:'Times New Roman'font-size:18px">$table.bootstrapTable({
//url: 'json/dev.json',
data: wcssdata,
toolbar: '#toolbar', //工具按钮用哪个容器
//striped: true, //是否显示行间隔色
cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
pagination: true, //是否显示分页
sortable: true, //是否启用排序
sortOrder: "asc", //排序方式
//queryParams: postQueryParams,//传递参数(敏稿陵*)
//sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
pageSize: 20, //每页的记录行数(*)
pageList: [10, 25, 50, 100], //可供选择的每页的行数(*)
strictSearch: true,
//height: table_h, //行高,如果没有设置height属性,表格自动根据记录条数觉得桥戚表格高度,设置了行高后编辑时标头宽度不会随着下面的行改变,且颜色也不会改变????
uniqueId: "id", //每一行的唯一标识,一般为主键列
cardView: false, //是否显示详细视图
detailView: false, //是否显示父子表
paginationHAlign: "left",
singleSelect: true,
//search:true, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端
//strictSearch: true,
//showColumns: true, //是否显示所有的列
//showRefresh: true, //是否显示刷新按钮
clickToSelect: true, //是否启用点击选中行
paginationPreText: "<<",
paginationNextText: ">>",
columns: [{
checkbox: true,
}, {
field: 'id',
title: '序号',
width: "75px",
}, {
field: 'seq_no',
title: '编号',
}, {
field: 'type',
title: '类型',
}, {
field: 'position',
title: '位置',
}, {
field: 'status',
title: '设备状态',
}, {
field: 'fault',
title: '故障现象',
}, {
field: 'purchase_time',
title: '采购时间',
}, {
field: 'quality_time',
title: '出保时间',
}, {
field: 'maintain_unit',
title: '维护单位',
}, {
field: 'inputer',
title: '录入者',
}, {
field: 'operate',
title: ' *** 作',
width: '80px',
events: operateEvents1,
formatter: operateFormatter
}, ],
/*处理json数据需要配置此项
* responseHandler: function (res) {
return res.rows
}*/
})</span>
<span style="font-family:'Times New Roman'font-size:18px">敬旦window.operateEvents1 = {
'click .RoleOfA': function(e, value, row, index) {
detailmodal.open()
$("#dev_id").val(row.id)
$("#seq_no").val(row.seq_no)
$("#dev_pos").val(row.position)
$("#dev_type1").val(row.type)
$("#dev_status").val(row.status)
$("#fault").val(row.fault)
$("#buy_time").val(row.purchase_time)
$("#quality_time").val(row.quality_time)
$("#inputer").val(row.inputer)
$("#maintain_unit").val(row.maintain_unit)
for(var i in row) console.log(i)
}
}
function operateFormatter(value, row, index) {
return [
'<button id="btn_detail" type="button" class="RoleOfA btn-default bt-select">详情</button>',
].join('')
}</span>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)