JTable行选取的事件触发如何实现

JTable行选取的事件触发如何实现,第1张

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>


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11975784.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存