⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 proguardgui.java

📁 ProGuard 是一个免费的 Java类文件的压缩
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
                new TextSprite(new ConstantString(msg("preverification")),                               new LinearInt(1000, 350, new SmoothTiming(2500, 3500)),                               new ConstantInt(140)),                new FontSprite(new ConstantFont(new Font("sansserif", Font.BOLD, 30)),                new TextSprite(new TypeWriterString(msg("developed"), new LinearTiming(3500, 5500)),                               new ConstantInt(250),                               new ConstantInt(200))),            })))),        });        splashPanel = new SplashPanel(splash, 0.5, 5500L);        splashPanel.setPreferredSize(new Dimension(0, 200));        JTextArea welcomeTextArea = new JTextArea(msg("proGuardInfo"), 18, 50);        welcomeTextArea.setOpaque(false);        welcomeTextArea.setEditable(false);        welcomeTextArea.setLineWrap(true);        welcomeTextArea.setWrapStyleWord(true);        welcomeTextArea.setPreferredSize(new Dimension(0, 0));        welcomeTextArea.setBorder(new EmptyBorder(20, 20, 20, 20));        addBorder(welcomeTextArea, "welcome");        JPanel proGuardPanel = new JPanel(layout);        proGuardPanel.add(splashPanel,      splashPanelConstraints);        proGuardPanel.add(welcomeTextArea,  welcomeTextAreaConstraints);        // Create the input panel.        // TODO: properly clone the ClassPath objects.        // This is awkward to implement in the generic ListPanel.addElements(...)        // method, since the Object.clone() method is not public.        programPanel.addCopyToPanelButton(msg("moveToLibraries"), libraryPanel);        libraryPanel.addCopyToPanelButton(msg("moveToProgram"),   programPanel);        // Collect all buttons of these panels and make sure they are equally        // sized.        List panelButtons = new ArrayList();        panelButtons.addAll(programPanel.getButtons());        panelButtons.addAll(libraryPanel.getButtons());        setCommonPreferredSize(panelButtons);        panelButtons = null;        addBorder(programPanel, "programJars" );        addBorder(libraryPanel, "libraryJars" );        JPanel inputOutputPanel = new JPanel(layout);        inputOutputPanel.add(programPanel, stretchPanelConstraints);        inputOutputPanel.add(libraryPanel, stretchPanelConstraints);        // Load the boiler plate options.        loadBoilerplateConfiguration();        // Create the boiler plate keep panels.        boilerplateKeepCheckBoxes = new JCheckBox[boilerplateKeep.length];        boilerplateKeepTextFields = new JTextField[boilerplateKeep.length];        JButton printUsageBrowseButton   = createBrowseButton(printUsageTextField,                                                              msg("selectUsageFile"));        JPanel shrinkingOptionsPanel = new JPanel(layout);        addBorder(shrinkingOptionsPanel, "options");        shrinkingOptionsPanel.add(shrinkCheckBox,         constraintsLastStretch);        shrinkingOptionsPanel.add(printUsageCheckBox,     constraints);        shrinkingOptionsPanel.add(printUsageTextField,    constraintsStretch);        shrinkingOptionsPanel.add(printUsageBrowseButton, constraintsLast);        JPanel shrinkingPanel = new JPanel(layout);        shrinkingPanel.add(shrinkingOptionsPanel, panelConstraints);        addClassSpecifications(extractClassSpecifications(boilerplateKeep),                               shrinkingPanel,                               boilerplateKeepCheckBoxes,                               boilerplateKeepTextFields);        addBorder(additionalKeepPanel, "keepAdditional");        shrinkingPanel.add(additionalKeepPanel, stretchPanelConstraints);        // Create the boiler plate keep names panels.        boilerplateKeepNamesCheckBoxes = new JCheckBox[boilerplateKeepNames.length];        boilerplateKeepNamesTextFields = new JTextField[boilerplateKeepNames.length];        JButton printMappingBrowseButton = createBrowseButton(printMappingTextField,                                                              msg("selectPrintMappingFile"));        JButton applyMappingBrowseButton = createBrowseButton(applyMappingTextField,                                                              msg("selectApplyMappingFile"));        JButton obfucationDictionaryBrowseButton = createBrowseButton(obfuscationDictionaryTextField,                                                                      msg("selectObfuscationDictionaryFile"));        JPanel obfuscationOptionsPanel = new JPanel(layout);        addBorder(obfuscationOptionsPanel, "options");        obfuscationOptionsPanel.add(obfuscateCheckBox,                  constraintsLastStretch);        obfuscationOptionsPanel.add(printMappingCheckBox,               constraints);        obfuscationOptionsPanel.add(printMappingTextField,              constraintsStretch);        obfuscationOptionsPanel.add(printMappingBrowseButton,           constraintsLast);        obfuscationOptionsPanel.add(applyMappingCheckBox,               constraints);        obfuscationOptionsPanel.add(applyMappingTextField,              constraintsStretch);        obfuscationOptionsPanel.add(applyMappingBrowseButton,           constraintsLast);        obfuscationOptionsPanel.add(obfuscationDictionaryCheckBox,      constraints);        obfuscationOptionsPanel.add(obfuscationDictionaryTextField,     constraintsStretch);        obfuscationOptionsPanel.add(obfucationDictionaryBrowseButton,   constraintsLast);        obfuscationOptionsPanel.add(overloadAggressivelyCheckBox,       constraintsLastStretch);        obfuscationOptionsPanel.add(useUniqueClassMemberNamesCheckBox,  constraintsLastStretch);        obfuscationOptionsPanel.add(useMixedCaseClassNamesCheckBox,     constraintsLastStretch);        obfuscationOptionsPanel.add(flattenPackageHierarchyCheckBox,    constraints);        obfuscationOptionsPanel.add(flattenPackageHierarchyTextField,   constraintsLastStretch);        obfuscationOptionsPanel.add(repackageClassesCheckBox,           constraints);        obfuscationOptionsPanel.add(repackageClassesTextField,          constraintsLastStretch);        obfuscationOptionsPanel.add(keepAttributesCheckBox,             constraints);        obfuscationOptionsPanel.add(keepAttributesTextField,            constraintsLastStretch);        obfuscationOptionsPanel.add(newSourceFileAttributeCheckBox,     constraints);        obfuscationOptionsPanel.add(newSourceFileAttributeTextField,    constraintsLastStretch);        obfuscationOptionsPanel.add(adaptResourceFileNamesCheckBox,     constraints);        obfuscationOptionsPanel.add(adaptResourceFileNamesTextField,    constraintsLastStretch);        obfuscationOptionsPanel.add(adaptResourceFileContentsCheckBox,  constraints);        obfuscationOptionsPanel.add(adaptResourceFileContentsTextField, constraintsLastStretch);        JPanel obfuscationPanel = new JPanel(layout);        obfuscationPanel.add(obfuscationOptionsPanel, panelConstraints);        addClassSpecifications(extractClassSpecifications(boilerplateKeepNames),                               obfuscationPanel,                               boilerplateKeepNamesCheckBoxes,                               boilerplateKeepNamesTextFields);        addBorder(additionalKeepNamesPanel, "keepNamesAdditional");        obfuscationPanel.add(additionalKeepNamesPanel, stretchPanelConstraints);        // Create the boiler plate "no side effect methods" panels.        boilerplateNoSideEffectMethodCheckBoxes = new JCheckBox[boilerplateNoSideEffectMethods.length];        JPanel optimizationOptionsPanel = new JPanel(layout);        addBorder(optimizationOptionsPanel, "options");        optimizationOptionsPanel.add(optimizeCheckBox,                constraintsLastStretch);        optimizationOptionsPanel.add(allowAccessModificationCheckBox, constraintsLastStretch);        optimizationOptionsPanel.add(optimizationPassesLabel,         constraints);        optimizationOptionsPanel.add(optimizationPassesSpinner,       constraintsLast);        JPanel optimizationPanel = new JPanel(layout);        optimizationPanel.add(optimizationOptionsPanel, panelConstraints);        addClassSpecifications(boilerplateNoSideEffectMethods,                               optimizationPanel,                               boilerplateNoSideEffectMethodCheckBoxes,                               null);        addBorder(additionalNoSideEffectsPanel, "assumeNoSideEffectsAdditional");        optimizationPanel.add(additionalNoSideEffectsPanel, stretchPanelConstraints);        // Create the options panel.        JPanel preverificationOptionsPanel = new JPanel(layout);        addBorder(preverificationOptionsPanel, "preverificationAndTargeting");        preverificationOptionsPanel.add(preverifyCheckBox,    constraintsLastStretch);        preverificationOptionsPanel.add(microEditionCheckBox, constraintsLastStretch);        preverificationOptionsPanel.add(targetCheckBox,       constraints);        preverificationOptionsPanel.add(targetComboBox,       constraintsLast);        JButton printSeedsBrowseButton =            createBrowseButton(printSeedsTextField, msg("selectSeedsFile"));        JButton printConfigurationBrowseButton =            createBrowseButton(printConfigurationTextField, msg( "selectConfigurationFile"));        JButton dumpBrowseButton =            createBrowseButton(dumpTextField, msg("selectDumpFile"));        // Select the most recent target by default.        targetComboBox.setSelectedIndex(targetComboBox.getItemCount() - 1);        JPanel consistencyPanel = new JPanel(layout);        addBorder(consistencyPanel, "consistencyAndCorrectness");        consistencyPanel.add(verboseCheckBox,                          constraintsLastStretch);        consistencyPanel.add(noteCheckBox,                             constraintsLastStretch);        consistencyPanel.add(warnCheckBox,                             constraintsLastStretch);        consistencyPanel.add(ignoreWarningsCheckBox,                   constraintsLastStretch);        consistencyPanel.add(skipNonPublicLibraryClassesCheckBox,      constraintsLastStretch);        consistencyPanel.add(skipNonPublicLibraryClassMembersCheckBox, constraintsLastStretch);        consistencyPanel.add(forceProcessingCheckBox,                  constraintsLastStretch);        consistencyPanel.add(printSeedsCheckBox,                       constraints);        consistencyPanel.add(printSeedsTextField,                      constraintsStretch);        consistencyPanel.add(printSeedsBrowseButton,                   constraintsLast);        consistencyPanel.add(printConfigurationCheckBox,               constraints);        consistencyPanel.add(printConfigurationTextField,              constraintsStretch);        consistencyPanel.add(printConfigurationBrowseButton,           constraintsLast);        consistencyPanel.add(dumpCheckBox,                             constraints);        consistencyPanel.add(dumpTextField,                            constraintsStretch);        consistencyPanel.add(dumpBrowseButton,                         constraintsLast);        // Collect all components that are followed by text fields and make        // sure they are equally sized. That way the text fields start at the        // same horizontal position.        setCommonPreferredSize(Arrays.asList(new JComponent[] {            printMappingCheckBox,            applyMappingCheckBox,            flattenPackageHierarchyCheckBox,            repackageClassesCheckBox,            newSourceFileAttributeCheckBox,        }));        JPanel optionsPanel = new JPanel(layout);        optionsPanel.add(preverificationOptionsPanel, panelConstraints);        optionsPanel.add(consistencyPanel,            panelConstraints);        addBorder(whyAreYouKeepingPanel, "whyAreYouKeeping");        optionsPanel.add(whyAreYouKeepingPanel, stretchPanelConstraints);        // Create the process panel.        consoleTextArea.setOpaque(false);        consoleTextArea.setEditable(false);        consoleTextArea.setLineWrap(false);        consoleTextArea.setWrapStyleWord(false);        JScrollPane consoleScrollPane = new JScrollPane(consoleTextArea);        consoleScrollPane.setBorder(new EmptyBorder(1, 1, 1, 1));        addBorder(consoleScrollPane, "processingConsole");        JPanel processPanel = new JPanel(layout);        processPanel.add(consoleScrollPane, stretchPanelConstraints);        // Create the load, save, and process buttons.        JButton loadButton = new JButton(msg("loadConfiguration"));        loadButton.addActionListener(new MyLoadConfigurationActionListener());        JButton viewButton = new JButton(msg("viewConfiguration"));        viewButton.addActionListener(new MyViewConfigurationActionListener());        JButton saveButton = new JButton(msg("saveConfiguration"));        saveButton.addActionListener(new MySaveConfigurationActionListener());        JButton processButton = new JButton(msg("process"));        processButton.addActionListener(new MyProcessActionListener());        // Create the ReTrace panel.        JPanel reTraceSettingsPanel = new JPanel(layout);        addBorder(reTraceSettingsPanel, "reTraceSettings");        JButton reTraceMappingBrowseButton = createBrowseButton(reTraceMappingTextField,                                                                msg("selectApplyMappingFile"));        JLabel reTraceMappingLabel = new JLabel(msg("mappingFile"));        reTraceMappingLabel.setForeground(reTraceVerboseCheckBox.getForeground());        reTraceSettingsPanel.add(reTraceVerboseCheckBox,     constraintsLastStretch);        reTraceSettingsPanel.add(reTraceMappingLabel,        constraints);        reTraceSettingsPanel.add(reTraceMappingTextField,    constraintsStretch);        reTraceSettingsPanel.add(reTraceMappingBrowseButton, constraintsLast);        stackTraceTextArea.setOpaque(true);        stackTraceTextArea.setEditable(true);        stackTraceTextArea.setLineWrap(false);        stackTraceTextArea.setWrapStyleWord(true);        JScrollPane stackTraceScrollPane = new JScrollPane(stackTraceTextArea);        addBorder(stackTraceScrollPane, "obfuscatedStackTrace");        reTraceTextArea.setOpaque(false);        reTraceTextArea.setEditable(false);        reTraceTextArea.setLineWrap(true);        reTraceTextArea.setWrapStyleWord(true);        JScrollPane reTraceScrollPane = new JScrollPane(reTraceTextArea);        reTraceScrollPane.setBorder(new EmptyBorder(1, 1, 1, 1));        addBorder(reTraceScrollPane, "deobfuscatedStackTrace");        JPanel reTracePanel = new JPanel(layout);        reTracePanel.add(reTraceSettingsPanel, panelConstraints);        reTracePanel.add(stackTraceScrollPane, panelConstraints);        reTracePanel.add(reTraceScrollPane,    stretchPanelConstraints);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -