prepareEditor
发布日期:2021-09-08 01:45:08 浏览次数:45 分类:技术文章

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

@Override    public Component prepareEditor(TableCellEditor editor, int row, int column) {        final Component comp = super.prepareEditor(editor, row, column);        if (column == this.convertColumnIndexToView(this.treeRenderCol) && comp != null) {            final int r = this.convertRowIndexToModel(row), col = column;            final Rectangle rect = this.getCellRect(r, column, false);            JPanel panel = new JPanel() {                private static final long serialVersionUID = -4503378912490172443L;                @Override                protected void paintComponent(Graphics g) {                    super.paintComponent(g);                    CTreeTable.this.tree.highlightBorder = null;                    CTreeTable.this.tree.rowToPaint = r;                    CTreeTable.this.tree.colToPaint = col;                    CTreeTable.this.tree.setBounds(rect.x, 0, rect.width, 0);                    Graphics g2 = null;                    try {                        g2 = g.create();                        CTreeTable.this.tree.paint(g2);                    }                    finally {                        if (g2 != null) {                            g2.dispose();                        }                    }                }                @SuppressWarnings("boxing")                protected boolean processCompKeyBinding(final JComponent jcomp, final KeyStroke ks, final KeyEvent e,                        final int condition, final boolean pressed) {                    boolean retr = AccessController.doPrivileged(new PrivilegedAction
() { @Override public Boolean run() { boolean b = false; try { Method m = JComponent.class.getDeclaredMethod("processKeyBinding", KeyStroke.class, KeyEvent.class, int.class, boolean.class); m.setAccessible(true); b = (Boolean) m.invoke(jcomp, ks, e, condition, pressed); } catch (Exception e1) { // e1.printStackTrace(); XBRLLogger.info(e1.getMessage() + "\n" + e1.getStackTrace().toString(), true); } return b; } }); return retr; } @Override protected boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed) { if (comp instanceof JComponent) { boolean b = this.processCompKeyBinding((JComponent) comp, ks, e, JComponent.WHEN_FOCUSED, pressed); if (CTreeTable.this.getSurrendersFocusOnKeystroke()) { comp.requestFocus(); } return b; } return super.processKeyBinding(ks, e, condition, pressed); } }; panel.setLayout(null); panel.setBounds(rect); int x = this.tree.getRowBounds(r).x; TreeCellRenderer tcr = this.tree.getCellRenderer(); if (tcr != null && tcr instanceof DefaultTreeCellRenderer) { DefaultTreeCellRenderer dtcr = (DefaultTreeCellRenderer) tcr; x += dtcr.getIconTextGap() + dtcr.getIcon().getIconWidth(); } comp.setBounds(x, 0, rect.width - x, rect.height); panel.add(comp); return panel; } return comp; }

 

转载地址:https://blog.csdn.net/weixin_34310369/article/details/85607072 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:高级I/O之I/O多路转接——pool、select
下一篇:NMAP - A Stealth Port Scanner--reference

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年03月05日 10时06分32秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

二阶差分预测后数据还原公式_xgboost系列丨xgboost原理及公式推导 2019-04-21
docker mysql服务启动失败_docker中mysql初始化及启动失败问题解决方案 2019-04-21
mysql 阿里云 添加磁盘空间_rds mysql磁盘空间包含 2019-04-21
mysql 1364 hy000_mysql SQL Error: 1364, SQLState: HY000 保存错误 2019-04-21
mysqli拓展还能用mysql_最近在学习php,其中使用了MYSQLi扩展,注意是MYSQLi不是MYSQL(因PHP7已经不支持MYSQL扩展了)。... 2019-04-21
java中gui_java中GUI是什么意思?详细图解 2019-04-21
java iso 8601_如何在iOS上获得ISO 8601日期? 2019-04-21
windows8怎么下载python_win8怎么安装python 2019-04-21
linux猜数字程序,用linux实现猜数字小游戏源码 2019-04-21
linux下堆栈溢出实例,堆栈溢出在Linux上沉默? 2019-04-21
python创建nc文件_工具箱第2期 用python玩转NC 2019-04-21
拆分文件_文件拆分与合并 2019-04-21
开发优势_小程序开发优势好处有哪些 2019-04-21
4光影补丁_我的世界seus光影包 2019-04-21
aria手机下载_Aria2App 2019-04-21
汇编指令msr_ARM汇编:MRS和MSR指令 2019-04-21
慕课python第五周测试答案_中国大学MOOC(慕课)_python+_满分章节测试答案 2019-04-21
lsof查看占用高_lsof解决磁盘占用过高,查询却无大文件处理一例! 2019-04-21
python调用oracle过程 权限不足_oracle-存储过程提示 ORA-01031: 权限不足 2019-04-21
java ee6教程_Java EE 极简教程(六):框架的选择 2019-04-21