Netbeans:如何从"设计"GUI构建器向JTable添加valueChanged侦听器?

Thu*_*fir 3 java swing netbeans jtable netbeans-7

我右键单击了JTable并将一些代码插入到一个糟糕的kludge中的"post listeners code"中.

我没有看到添加的选项

table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
  public void valueChanged(ListSelectionEvent evt) {
Run Code Online (Sandbox Code Playgroud)

到JTable的"设计"视图中的"事件".我确定有一种方法可以从设计视图中添加valueChanged(ListSelectionEvent evt),但是如何?

也许这是一个错误

行选择更改事件由JTable的ListSelectionModel生成,而不是由JTable本身生成 - 因此事件无法在Component Inspector中呈现(作为JTable的事件).处理此事件必须手动完成,例如:

jTable1.getSelectionModel().addListSelectionListener(
    new javax.swing.event.ListSelectionListener() {
        public void valueChanged(ListSelectionEvent evt) {
            customRowSelectionEventHandler(evt);
        }
    }
);
Run Code Online (Sandbox Code Playgroud)

虽然可能有一种方法可以在"蓝色","托管"代码之外获取JTable的ListSelectionModel?

tra*_*god 5

您可以ListSelectionListener在源的可编辑部分创建自己的部分.您可以将监听器的实例添加到jTable1表的Post-init Code属性中的类变量的选择模型中:

jTable1.getSelectionModel().addListSelectionListener(new MyListener());
Run Code Online (Sandbox Code Playgroud)

监听器本身可能如下所示:

private static class MyListener implements ListSelectionListener {

    @Override
    public void valueChanged(ListSelectionEvent e) {
        System.out.println(e.getFirstIndex());
    }
}
Run Code Online (Sandbox Code Playgroud)