CJBE修改jide-grids字节码

1 篇文章 0 订阅
1 篇文章 0 订阅

破解jide-grids-3.7.3

前言

jide-grids-3.7.3是一个jide的一个jar包,但如果使用的话都会弹出一个对话框。
jar可以到http://www.jidesoft.com/products/grids.htm,或者maven中找到

<dependency>
    <groupId>org.bidib.com.jidesoft</groupId>
    <artifactId>jide-grids</artifactId>
    <version>3.7.3</version>
</dependency>
<dependency>
    <groupId>org.bidib.com.jidesoft</groupId>
    <artifactId>jide-common</artifactId>
    <version>3.7.3</version>
</dependency>

提示框
如果能把这个提示框去掉也许就能正常使用了

代码debug

我先使用了反编译工具查看,发现代码是混淆无法查看dialog的代码在哪,最后想到了使用jps和jstack来定位dialog代码位置

1.首先使用jps命令
jps命令
知道了jpid号是12092

2.jstack命令
jstack命令
从上来能看出最终调用dialog的类是com.jidesoft.utils.Lm(jide-common)
查看众多控件发现com.jidesoft.utils.Lm.showInvalidProductMessage调用的地方都是在中,这是一个静态块(在jvm第一次加载class文件时调用,包括静态变量初始化语句和静态块的执行),修改这个地方有隐患所以我修改了com.jidesoft.utils.Lm.showInvalidProductMessage,无法反编译所以需要一款修改字节码的工具,我使用的是https://github.com/contra/CJBE

3.CJBE修改字节码
先吧com.jidesoft.utils.Lm解压到文件夹中,然后用CJBE打开
在这里插入图片描述
在方法区中找到showInvalidProductMessage节点,点击左边的Code Editor,把内容全吧删除只保留return语句
在这里插入图片描述
最后点击save method,到此Lm类就修改完成了,最后把修改完成的Lm类重新打包到com.jidesoft.utils

4.测试
没有再弹出dialog了,完美
在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
杰笛表格 JTable应该是Swing中用的最多的组件。 为了充分发挥JTable的功能,我们引入了一专门为JTable制作的产品叫杰笛表格,它提供了很多和JTable有关的组件和功能。 该产品有许多JTable的子类:从基础的JideTable开始,到CellSpantable,CellStyleTable,SortableTable,然后更先进的TreeTable,PropertyTable和HierarchicaTable。此外,我们建立了许多不同的数据类型CellEditor和CellRenderer,如日期,颜色,插入,字体。过滤也是杰笛表格另一个重要功能。它涵盖不只是JTable,还包括JList和JTree。您务必运行我们提供的演示程序才能体会到我们在该产品上花了多少精力,所有这些都是为了让您能更容易地进一步开发。 功能介绍 界面组件 PropertyGrid - 属性表格,一种两列的JTable,用来显示任何内嵌结构的对象的属性 SortableTable - 排序表,支持多列的排序功能 FilterableTableModel - 可过滤的表模型,支持针对每一列增加过滤功能 HierarchicalTable - 分级表,对表的一行嵌套任何控件作为子控件 row TreeTable - 树形表,联合使用树控件和表控件来显示层次化分级数据 CellSpanTable - 合并单元格,支持单元格的合并功能 CellStyleTable - 多样式单元格,支持每一个单元格自定义风格 JideTable -自动监听表格单元格编辑操作比如在单元格开始编辑之前或者单元格结束编辑之前),支持有效性检查、支持根据单元格内容自动调节表格的行间距和列间距 TableScrollPane - 通过扩展JideScrollPane 组件来实现行列的头,尾使用一个唯一的表数据模型 TableSplitPane - 使用一个唯一的表数据模型来创造几个不同的表格。每一个表格都可以独立定义列头和;列尾的样式 ColorComboBox and ColorChooserPanel - 一套颜色选择控件,从面板选择到组合框,到单元格编辑,支持用户自定义颜色模式 DateComboBox and DateChooserPanel - 一套月份/日期选择控件,从面板选择到组合框,到单元格编辑,支持国际化和本地化(i18n和l10n) AbstractComboBox - 支持用任何控件做弹出式面板 FilterableListModel - 支持列表的过滤功能 FilterableTreeModel - 支持对树模型任何节点的过滤功能s SortableListModel - 支持列表的排序功能 SortableTreeModel - 支持任何树模型每个节点的排序功能 QuickTableFilterField and QuickFilterPane - 简化一个超大型表格查找和过滤的操作步骤,提升效率 QuickListFilterField and QuickTreeFilterField -支持在一个大型的集合或者树的数据域中敏捷查找和过滤 工具类 归一化的编辑/渲染机制(Centralized cell editor and renderer mechanism )- 自定义单元格编辑器并放置在一个地方,然后通过应用程序来使用它 归一化的对象转换机制(Centralized object converter mechanism) -自定义从字符串到任何对象的转换 归一化的对象比较机制(Centralized object comparator mechanism )-自定义对象的比较,并能在排序时被排序表使用 表实用类TableUtils class - 收集一些JTable有用功能的实用类。 集合实用类ListUtils class -收集一些JTable有用功能的实用类 树实用类 -收集一些Jtree有用功能的实用类详细的功能列表
杰笛公共模块 Common Layer (开源项目) 我们于2007年4月决定开源杰笛公共模块。您可以到http://java.net/projects/jide-oss/去下载它的源代码。如果您是杰笛的付费用户,杰笛公共模块的源代码已经包括在下载包的src目录下面,您无需单独下载。 杰笛公共模块有超过十万行的程序和30多个组件和工具类,该产品是杰笛产品的基石。从2002年开始,它就是杰笛付费产品的一部分,所以它的质量和稳定性是可以保障的。您可以运行下面的webstart演示来看到该项目中包括的组件。 许可方式 杰笛公共模块有两个许可渠道,都是免费的。这两个许可分别是GPL加classpath exception和免费商业许可。您可以点击链接看到许可的具体内容。第一个许可是在开源界广泛使用的许可。它也是Java的JDK使用的开源许可。第二个许可则是杰笛其它产品的许可一模一样,除了它是免费的。所有杰笛的收费用户都默认用这个许可,这样不需要改到开源许可。 技术支持 很多开源项目缺乏必要的技术支持。为了解决这样的问题,我们对杰笛公共模块的开源模式采用了下面的一些政策: 文档:所有的源代码都有javadoc。另外我们还编写了一个开发员使用手册,上面详细说明了怎样使用每一个组件。最后,我们还提供了很多的包括源代码的示例程序。 错误报告:我们将有专门的资源负责除了错误报告,然后根据优先级,决定修复这些错误。我们也接受来自广大爱好者的错误修复,当然我们的工作人员会认真审核您们的修复代码然后集成到我们的程序中。 社区技术支持:我们提供了一个特别论坛,让你可以得到其他人的帮助下。为了鼓励大家都来贡献,我们也会参与讨论,并且对那些积极参与讨论的杰笛爱好者提供一些免费的产品许可证。 付费技术支持:如果您需要及时专业的支持,您可以随时从我们的网上商店购买杰笛公共模块年度维护更新(产品代码是#2090)。对于那些购买商业产品的客户,杰笛公共模块的技术支持是包括在内,这个论坛是专门为付费用户提供的论坛。 功能简介 界面组件 JideTabbedPane - an extended version of JTabbedPane supporting different tab shapes, color themes, shrinkable tabs, close button on tab, editable tab etc. JideSplitPane - an extended version of JSplitPane supporting multiple splits (JSplitPane can only have two splits) JideButton - an ideal replacement for a toolbar button JideSplitButton - a composite component which is a combination of a button and a popup menu Searchable JList, JTree, JComboBox and JTable - type in any text to quickly find matching rows, tree nodes, or table cells SearchableBar - as seen in Mozilla Firefox ResizablePanel, ResizableWindow and undecorated ResizableDialog FolderChooser - allows you to choose a folder RangeSlider - a slider which allows you to select two values to form a range JideScrollPane - column and row footer support for JScrollPane SimpleScrollPane - a scroll pane having four scroll buttons on the four sides. Overlayable - to put a component on top of another component at a specified location in order to provide a hint about how to use a component, to provide a progress indicator or to provide a status indicator beside a component without affecting the existing layout. AutoResizingTextArea - a text area that can automatically resize its height to fit in the content. StyledLabel - A JLabel that support different fonts, colors, and decorative lines. CheckBoxList and CheckBoxTree - use check boxes inside JLists and JTrees. Calculator Component DateSpinner and PointSpinner Popup - support any popup window AutoCompletion and IntelliHints StandardDialog - built on top of JDialog to support common used dialog standards as well as adding missing standard features of any dialogs. ButtonPanel - arrange buttons in different layouts with different gaps based on OS conventions Pre-built panels such as BannerPanel AbstractPage - lazy loading panel with page events (open, closing, closed, etc.), an ideal panel for building dialogs 工具类 IconFactory - simplify and unify the usage of icons across the whole application SystemInfo - a utility class which can be used to retrieve information about the current system, including OS name and version, JDK version requirement, etc. A fast gradient paint method in JideSwingUtilities. By leveraging DirectDraw, the fast gradient paint is 2 to 40 times faster than normal GradientPaint.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值