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

📄 memberspecificationdialog.java

📁 ProGuard 是一个免费的 Java类文件的压缩
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * ProGuard -- shrinking, optimization, obfuscation, and preverification *             of Java bytecode. * * Copyright (c) 2002-2007 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */package proguard.gui;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;import javax.swing.border.Border;import proguard.*;import proguard.classfile.*;import proguard.classfile.util.*;import proguard.util.*;/** * This <code>JDialog</code> allows the user to enter a String. * * @author Eric Lafortune */class MemberSpecificationDialog extends JDialog{    /**     * Return value if the dialog is canceled (with the Cancel button or by     * closing the dialog window).     */    public static final int CANCEL_OPTION = 1;    /**     * Return value if the dialog is approved (with the Ok button).     */    public static final int APPROVE_OPTION = 0;    private boolean isField;    private JRadioButton[] publicRadioButtons;    private JRadioButton[] privateRadioButtons;    private JRadioButton[] protectedRadioButtons;    private JRadioButton[] staticRadioButtons;    private JRadioButton[] finalRadioButtons;    private JRadioButton[] volatileRadioButtons;    private JRadioButton[] transientRadioButtons;    private JRadioButton[] synchronizedRadioButtons;    private JRadioButton[] nativeRadioButtons;    private JRadioButton[] abstractRadioButtons;    private JRadioButton[] strictRadioButtons;    private JTextField annotationTypeTextField = new JTextField(20);    private JTextField nameTextField           = new JTextField(20);    private JTextField typeTextField           = new JTextField(20);    private JTextField argumentTypesTextField  = new JTextField(20);    private int        returnValue;    public MemberSpecificationDialog(JDialog owner, boolean isField)    {        super(owner, true);        setResizable(true);        // Create some constraints that can be reused.        GridBagConstraints constraints = new GridBagConstraints();        constraints.anchor = GridBagConstraints.WEST;        constraints.insets = new Insets(1, 2, 1, 2);        GridBagConstraints constraintsStretch = new GridBagConstraints();        constraintsStretch.fill    = GridBagConstraints.HORIZONTAL;        constraintsStretch.weightx = 1.0;        constraintsStretch.anchor  = GridBagConstraints.WEST;        constraintsStretch.insets  = constraints.insets;        GridBagConstraints constraintsLast = new GridBagConstraints();        constraintsLast.gridwidth = GridBagConstraints.REMAINDER;        constraintsLast.anchor    = GridBagConstraints.WEST;        constraintsLast.insets    = constraints.insets;        GridBagConstraints constraintsLastStretch = new GridBagConstraints();        constraintsLastStretch.gridwidth = GridBagConstraints.REMAINDER;        constraintsLastStretch.fill      = GridBagConstraints.HORIZONTAL;        constraintsLastStretch.weightx   = 1.0;        constraintsLastStretch.anchor    = GridBagConstraints.WEST;        constraintsLastStretch.insets    = constraints.insets;        GridBagConstraints panelConstraints = new GridBagConstraints();        panelConstraints.gridwidth = GridBagConstraints.REMAINDER;        panelConstraints.fill      = GridBagConstraints.HORIZONTAL;        panelConstraints.weightx   = 1.0;        panelConstraints.weighty   = 0.0;        panelConstraints.anchor    = GridBagConstraints.NORTHWEST;        panelConstraints.insets    = constraints.insets;        GridBagConstraints stretchPanelConstraints = new GridBagConstraints();        stretchPanelConstraints.gridwidth = GridBagConstraints.REMAINDER;        stretchPanelConstraints.fill      = GridBagConstraints.BOTH;        stretchPanelConstraints.weightx   = 1.0;        stretchPanelConstraints.weighty   = 1.0;        stretchPanelConstraints.anchor    = GridBagConstraints.NORTHWEST;        stretchPanelConstraints.insets    = constraints.insets;        GridBagConstraints labelConstraints = new GridBagConstraints();        labelConstraints.anchor = GridBagConstraints.CENTER;        labelConstraints.insets = new Insets(2, 10, 2, 10);        GridBagConstraints lastLabelConstraints = new GridBagConstraints();        lastLabelConstraints.gridwidth = GridBagConstraints.REMAINDER;        lastLabelConstraints.anchor    = GridBagConstraints.CENTER;        lastLabelConstraints.insets    = labelConstraints.insets;        GridBagConstraints okButtonConstraints = new GridBagConstraints();        okButtonConstraints.weightx = 1.0;        okButtonConstraints.weighty = 1.0;        okButtonConstraints.anchor  = GridBagConstraints.SOUTHEAST;        okButtonConstraints.insets  = new Insets(4, 4, 8, 4);        GridBagConstraints cancelButtonConstraints = new GridBagConstraints();        cancelButtonConstraints.gridwidth = GridBagConstraints.REMAINDER;        cancelButtonConstraints.weighty   = 1.0;        cancelButtonConstraints.anchor    = GridBagConstraints.SOUTHEAST;        cancelButtonConstraints.insets    = okButtonConstraints.insets;        GridBagLayout layout = new GridBagLayout();        Border etchedBorder = BorderFactory.createEtchedBorder(EtchedBorder.RAISED);        this.isField = isField;        // Create the access panel.        JPanel accessPanel = new JPanel(layout);        accessPanel.setBorder(BorderFactory.createTitledBorder(etchedBorder,                                                               GUIResources.getMessage("access")));        accessPanel.add(Box.createGlue(),         labelConstraints);        accessPanel.add(new JLabel(GUIResources.getMessage("required")), labelConstraints);        accessPanel.add(new JLabel(GUIResources.getMessage("not")),      labelConstraints);        accessPanel.add(new JLabel(GUIResources.getMessage("dontCare")), labelConstraints);        accessPanel.add(Box.createGlue(),         constraintsLastStretch);        publicRadioButtons    = addRadioButtonTriplet("Public",    accessPanel);        privateRadioButtons   = addRadioButtonTriplet("Private",   accessPanel);        protectedRadioButtons = addRadioButtonTriplet("Protected", accessPanel);        staticRadioButtons    = addRadioButtonTriplet("Static",    accessPanel);        finalRadioButtons     = addRadioButtonTriplet("Final",     accessPanel);        if (isField)        {            volatileRadioButtons  = addRadioButtonTriplet("Volatile",  accessPanel);            transientRadioButtons = addRadioButtonTriplet("Transient", accessPanel);        }        else        {            synchronizedRadioButtons = addRadioButtonTriplet("Synchronized", accessPanel);            nativeRadioButtons       = addRadioButtonTriplet("Native",       accessPanel);            abstractRadioButtons     = addRadioButtonTriplet("Abstract",     accessPanel);            strictRadioButtons       = addRadioButtonTriplet("Strict",       accessPanel);        }        // Create the type panel.        JPanel typePanel = new JPanel(layout);        typePanel.setBorder(BorderFactory.createTitledBorder(etchedBorder,                                                             GUIResources.getMessage(isField ?                                                                                         "type" :                                                                                         "returnType")));        typePanel.add(typeTextField, constraintsLastStretch);        // Create the annotation type panel.        JPanel annotationTypePanel = new JPanel(layout);        annotationTypePanel.setBorder(BorderFactory.createTitledBorder(etchedBorder,                                                             GUIResources.getMessage("annotation")));        annotationTypePanel.add(annotationTypeTextField, constraintsLastStretch);        // Create the name panel.        JPanel namePanel = new JPanel(layout);        namePanel.setBorder(BorderFactory.createTitledBorder(etchedBorder,                                                             GUIResources.getMessage("name")));        namePanel.add(nameTextField, constraintsLastStretch);        // Create the arguments panel.        JPanel argumentsPanel = new JPanel(layout);        argumentsPanel.setBorder(BorderFactory.createTitledBorder(etchedBorder,                                                                  GUIResources.getMessage("argumentTypes")));        argumentsPanel.add(argumentTypesTextField, constraintsLastStretch);        // Create the Ok button.        JButton okButton = new JButton(GUIResources.getMessage("ok"));        okButton.addActionListener(new ActionListener()        {            public void actionPerformed(ActionEvent e)            {                returnValue = APPROVE_OPTION;                hide();            }        });        // Create the Cancel button.        JButton cancelButton = new JButton(GUIResources.getMessage("cancel"));        cancelButton.addActionListener(new ActionListener()        {            public void actionPerformed(ActionEvent e)            {                hide();            }        });        // Add all panels to the main panel.        JPanel mainPanel = new JPanel(layout);

⌨️ 快捷键说明

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