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

本文共 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

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2023年06月03日 15时14分55秒

关于作者

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

最新文章

正交解调 matlab,MATLAB正交振幅调制解调仿真分析(一)_通信工程毕业论文范文 2019-08-24 11:20:15
php实现代码高亮,PHP高亮显示 XML 源代码_php 2019-08-24 11:20:15
java里的globalperson作用,Java PersonAddress.getAddressType方法代码示例 2019-08-24 11:20:14
dash mpd parser java,xml – 如何创建MPEG-DASH的MPD文件来播放webm视频? 2019-08-24 11:20:14
msmtp 配置php,CentOS下使用MSMTP代替Sendmail发送邮件 2019-08-24 11:20:13
php函数的示例,php函数应用实例 2019-08-24 11:20:12
const php 数组,php数组的一些常见操作汇总 2019-08-24 11:20:12
php rename 覆盖,PHP: rename - Manual 2019-08-24 11:20:11
java制作九行九列表格_用编程实现Excel表格的九个基本操作 2019-08-24 11:20:11
java实现手机端开发实例_java为移动端写接口开发实例 2019-08-24 11:20:10
mysql简介分析_(一)MySQL的架构介绍 2019-08-24 11:20:10
java带参方法怎么修改姓名_SpringMVC自动将请求参数和入参对象的属性进行一一绑定;要求请求参数的名字和javaBean入参的对象里面的属性名是一样的||员工的增删改查案例... 2019-08-24 11:20:09
java棋盘覆盖分治法_算法java实现--分治法--棋盘覆盖问题 2019-08-24 11:20:09
java entitymanager类_EntityManager方法简介 2019-08-24 11:20:08
Java中输入刘流输出流_Java IO学习笔记(JDK1.5) 2019-08-24 11:20:08
java二分查找范围区间_使用二分查找判断某个数在某个区间中--如何判断某个IP地址所属的地区... 2019-08-24 11:20:07
java游戏boss是冰龙_炉石传说冒险模式冰龙区BOSS克尔苏加德打法攻略 2019-08-24 11:20:07
天干地支 工具类java_java日期工具类DateUtil-续二 2019-08-24 11:20:06
java不能接收十六进制数吗_为什么不能在Java中将十六进制值放入字节数组? 2019-08-24 11:20:06
java fx 插件_JavaFX - UI控件( UI Controls) 2019-08-24 11:20:05