博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jtable中某列实现html中a标签效果,鼠标移到上面去的时候显示手型效果
阅读量:2504 次
发布时间:2019-05-11

本文共 4359 字,大约阅读时间需要 14 分钟。

先看效果:

这里写图片描述

设置table某列渲染

table.getColumnModel().getColumn(4).setCellEditor(new MyRender());//设置编辑器        table.getColumnModel().getColumn(4).setCellRenderer(new MyRender());

jtable渲染类

/**   Table显示界面渲染类,重点为了实现鼠标移动到删除按钮上鼠标指针变成手型     */    class MyRender extends AbstractCellEditor implements TableCellRenderer, TableCellEditor, HyperlinkListener{        private static final long serialVersionUID = 1L;        private JEditorPane deleterPane =null;        private JEditorPane updatePane =null;        private JPanel panel;        public MyRender(){            panel=new JPanel();            panel.setLayout(new FlowLayout());            deleterPane = new JEditorPane();            deleterPane.setContentType("text/html");            deleterPane.setText(" 删除");            deleterPane.setName("delete");            deleterPane.setEditable(false);            deleterPane.setBackground(panel.getBackground());            deleterPane.addHyperlinkListener(this);            updatePane = new JEditorPane();            updatePane.setContentType("text/html");            updatePane.setText(" 修改");            updatePane.setName("update");            updatePane.setEditable(false);            updatePane.setBackground(panel.getBackground());            updatePane.addHyperlinkListener(this);            panel.add(deleterPane);            panel.add(updatePane);        }        @Override        public Object getCellEditorValue() {            return null;        }        @Override        public Component getTableCellRendererComponent(JTable table, Object value,                boolean isSelected, boolean hasFocus, int row, int column) {            return panel;        }        @Override        public Component getTableCellEditorComponent(JTable table, Object value,                boolean isSelected, int row, int column) {            return panel;        }        @Override        public void hyperlinkUpdate(HyperlinkEvent e) {            //点击删除按钮触发事件            if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {                String selectDirectoryNum=(String) model.getValueAt(selectRow, 0);                switch (((JEditorPane)e.getSource()).getName()) {                case "delete":                    int confirmResult=JOptionPane.showConfirmDialog(null, "确定删除 :"+selectDirectoryNum+"?","路径删除",JOptionPane.YES_NO_OPTION);                    //删除操作                    if(confirmResult==0){                        //列表中移除                        model.removeRow(selectRow);                        //数据库中移除                        DirectoryManageBusiness directoryManageBusiness=new DirectoryManageBusiness();                        Map
params=new HashMap<>(); params.put("extension_number", selectDirectoryNum); List
directoryEntitys = null; try { directoryEntitys = directoryManageBusiness.selectDirectorys(params); } catch (IOException e2) { // TODO Auto-generated catch block e2.printStackTrace(); } DirectoryEntity directory=directoryEntitys!=null?directoryEntitys.get(0):null; try { directoryManageBusiness.deleteDirectory(directory); total--; pageTotal=total%PAGE_COUNT==0?total/PAGE_COUNT:total/PAGE_COUNT+1; countField.setText(total+""); countPage.setText(pageTotal+""); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } break; case "update": List
params=new ArrayList<>(); params.add((String) model.getValueAt(selectRow, 0)); params.add((String) model.getValueAt(selectRow, 1)); params.add((String) model.getValueAt(selectRow, 2)); params.add((String) model.getValueAt(selectRow, 3)); add_updateDirectory(params); break; default: break; } } } }
你可能感兴趣的文章
android 代理模式创建Activity
查看>>
c++课程设计之菜单选择\\
查看>>
iOS 的 XMPPFramework 简介
查看>>
hdu 3555 数位dp入门
查看>>
Git学习系列-Git基本概念
查看>>
c#多个程序集使用app.config 的解决办法
查看>>
模仿网站登录注册
查看>>
Linux+Apache+PHP+MySQL服务器环境配置(CentOS篇)
查看>>
Linux下获取本机IP地址的代码
查看>>
(C#)调用Webservice,提示远程服务器返回错误(500)内部服务器错误
查看>>
flex布局
查看>>
python-----python的文件操作
查看>>
字节流例子
查看>>
Chain Of Responsibility Design Pattern Example
查看>>
Windows下curl使用 转载
查看>>
一个简单最大正向匹配(Maximum Matching)MM中文分词算法的实现
查看>>
angularjs中$scope是什么意思?
查看>>
数据校验
查看>>
控制台输出
查看>>
设计模式(二)单例设计模式
查看>>