feat(box): 现代化用户界面并添加 jar 文件预览功能
- 使用 FlatDarculaLaf 样式库替换默认样式 - 添加 jar 文件预览功能,使用 CFR 进行反编译 - 更新 build.gradle 文件,添加新依赖项 - 新增 CFROutputSinkFactory 和 JarClassFileSource 类 - 修改主程序启动逻辑,支持 jar 文件预览
This commit is contained in:
@@ -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():
|
||||
"""
|
||||
系统启动时自动执行的初始化逻辑
|
||||
|
||||
Reference in New Issue
Block a user