feat(box): 现代化用户界面并添加 jar 文件预览功能

- 使用 FlatDarculaLaf 样式库替换默认样式
- 添加 jar 文件预览功能,使用 CFR 进行反编译
- 更新 build.gradle 文件,添加新依赖项
- 新增 CFROutputSinkFactory 和 JarClassFileSource 类
- 修改主程序启动逻辑,支持 jar 文件预览
This commit is contained in:
tzdwindows 7
2025-02-23 13:31:14 +08:00
parent ce996b73be
commit e422d31b85
12 changed files with 1225 additions and 11 deletions

View File

@@ -5,13 +5,41 @@
版本1.1
"""
from com.axis.innovators.box.python import PyLocalSide
from javax.swing import AbstractAction
from javax.swing import AbstractAction, JFrame,JDialog, JLabel, JButton, JPanel, JOptionPane
from java.awt import BorderLayout, Dimension
from java.awt.event import ActionListener
class MyAction(AbstractAction):
def actionPerformed(self, event):
"""工具项点击事件处理"""
print("[DEBUG] Tool item clicked! Event source:", event.getSource())
# 创建 JDialog 作为子窗口
parent_frame = event.getSource().getTopLevelAncestor() # 获取父窗口
dialog = JDialog(parent_frame, u"工具面板", True) # True 表示模态对话框
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE) # 关闭时释放资源
dialog.setSize(300, 200)
dialog.setLocationRelativeTo(parent_frame) # 居中于父窗口
# 创建面板并设置布局
panel = JPanel()
panel.layout = BorderLayout() # 使用边界布局
# 添加标签
label = JLabel(u"这是工具项的子面板")
panel.add(label, BorderLayout.CENTER)
# 添加关闭按钮
close_btn = JButton(u"关闭")
close_btn.addActionListener(lambda e: dialog.dispose()) # 点击关闭窗口
panel.add(close_btn, BorderLayout.SOUTH)
# 将面板添加到窗口
dialog.add(panel)
dialog.visible = True # 显示窗口
def onStartup():
"""
系统启动时自动执行的初始化逻辑