JTable中获取鼠标移动、点击以及内容改变事件

来源:互联网 发布:剑三高冷成男捏脸数据 编辑:程序博客网 时间:2024/05/20 03:44
public void createFieldTable(){       Vector<String> header = new Vector<String>();      header.add("字段名");     Map<String, Set<String>> tableContentMap = (Map<String, Set<String>>) tableContentMapVec.get(curSelectedTable);fieldNameVec.clear();fieldSynSetVec.clear();fieldTableRowData.clear();for(Map.Entry<String, Set<String>> entry:tableContentMap.entrySet()){Vector<String> row = new Vector<String>();fieldNameVec.add(entry.getKey());fieldSynSetVec.add(entry.getValue());    row.add(entry.getKey());    fieldTableRowData.add(row);}      // 初始化表格        this.fieldTable = new JTable(new DefaultTableModel(fieldTableRowData, header)        {            @Override            public boolean isCellEditable(int row, int column)             {                return true;            }        });        fieldTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);        this.fieldTable.setSize(this.fieldScrollPane.getWidth(),this.fieldScrollPane.getHeight() - 30);        this.fieldTable.setLocation(0, 0);fieldTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {public void valueChanged(ListSelectionEvent e) {                //鼠标按下时bl=true释放时bl=false               boolean bl=e.getValueIsAdjusting();               if(!bl){               //System.out.println(fieldTable.getSelectedRow());               curSelectedField = fieldTable.getSelectedRow();               //modifyFieldButton.setEnabled(true);               //deleteFieldButton.setEnabled(true);               //createSynTable();               }   }}); fieldTable.getModel().addTableModelListener(new TableModelListener(){            public void tableChanged(TableModelEvent e) {            System.out.println(e.getFirstRow() );            System.out.println(e.getColumn());            }                    }); this.fieldTable.addMouseListener(new MouseAdapter(){              public void mouseClicked(MouseEvent e){                int selectedRow = fieldTable.getSelectedRow(); //获得选中行索引                if(selectedRow > -1)                System.out.println("选择了某行");                else                System.out.println("未选择某行");            }        });          this.fieldTable.addMouseMotionListener(new MouseAdapter(){              public void mouseMoved(MouseEvent e) {                  int row = fieldTable.rowAtPoint(e.getPoint());                  int col = fieldTable.columnAtPoint(e.getPoint());                  if(row>-1 && col>-1){                      Object value=fieldTable.getValueAt(row, col);                      if(null!=value && !"".equals(value))                      fieldTable.setToolTipText( new HtmlMultiLineControl().getTips(value.toString(), 5));//悬浮显示单元格内容                      else                      fieldTable.setToolTipText(null);//关闭提示                  }              }        });          this.fieldScrollPane.setViewportView(this.fieldTable);}

0 0
原创粉丝点击