如何判断JTable上右键点击所在行并弹出菜单
2010-06-01 19:42
441 查看
1.表格的建立过程
这个过程可以按照自己的初始化
2.菜单的建立
3.菜单的弹出处理
4.实现的效果如下:
这个过程可以按照自己的初始化
String[] headers = { "No", "Table Name" }; Object[][] cellData = null; DefaultTableModel model = new DefaultTableModel(cellData, headers) { public boolean isCellEditable(int row, int column) { // 第N列可以编辑 /* * if (column == N) { return false; } */ // 整个表都不能编辑 return false; } };
2.菜单的建立
popupMenu=new JPopupMenu(); tableNameItem=new JMenuItem(""); selectItem=new JMenuItem("Select SQL"); insertItem=new JMenuItem("Insert SQL"); deleteItem=new JMenuItem("Delete SQL"); updateItem=new JMenuItem("Update SQL"); hbmItem=new JMenuItem("hbm xml"); hbmPojoItem=new JMenuItem("Pojo Class"); popupMenu.add(tableNameItem); popupMenu.addSeparator(); popupMenu.add(selectItem); popupMenu.add(insertItem); popupMenu.add(deleteItem); popupMenu.add(updateItem); popupMenu.addSeparator(); popupMenu.add(hbmItem); popupMenu.add(hbmPojoItem);
3.菜单的弹出处理
table.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent evt) { if (evt.isPopupTrigger()) { // 取得右键点击所在行 int row=evt.getY()/table.getRowHeight(); /** * 取得是表名的那一列 */ int tableNameColumn=-1; for(int i=0;i<table.getColumnModel().getColumnCount();i++){ TableColumn selColumn = table.getColumnModel().getColumn(i); String columnHeader=(String)selColumn.getHeaderValue(); if(columnHeader.equals("Table Name")){ tableNameColumn=i; break; } } /** * 取得表名并弹出菜单 */ if(tableNameColumn!=-1){ /** * 修改菜单首条的名称 */ String tableName=(String)table.getValueAt(row,tableNameColumn); tableNameItem.setText(tableName); // 弹出菜单 popupMenu.show(evt.getComponent(), evt.getX(), evt.getY()); } } } }
4.实现的效果如下:
相关文章推荐
- 桌面点击右键,菜单向左弹出,如何改为向右弹出菜单
- JTable中点击鼠标右键弹出菜单
- JTable上点击右键并弹出菜单的实现
- C#TreeView窗体版点击右键弹出菜单+直接修改名称+新建节点
- 在WPF中弹出右键菜单时判断鼠标是否选中该项
- MFC中如何添右键弹出菜单
- 如何修改Pop-menu(右键弹出的菜单)的内容(Caption)
- 在WPF里面获取右键弹出菜单(ContextMenu)的鼠标点击源(Owner)控件
- 机器性能这么好,为什么点击右键弹出菜单还这么慢?
- Jquery鼠标右键点击弹出菜单
- 如何解决桌面右键菜单弹出慢的问题
- 如何让javascript菜单点击时弹出新窗口
- 右键单击浏览器时如何避免弹出快捷菜单
- 如何修改右键弹出的菜单的内容
- 如何自定义创建windows的右键弹出菜单(C++)
- 如何创建右键弹出菜单(即ContextMenu)
- ExtJs Tree的操作:注册事件,拖拽(目标位置的判断)、点击事件、加载之间事件、右键菜单
- C#TreeView窗体版点击右键弹出菜单+右键获取信息
- 点击右键就弹出一个菜单
- js如何用判断鼠标的右键还是左键,屏蔽右键菜单