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

📄 keyselectdialog.java

📁 网站即时通讯系统
💻 JAVA
字号:
/* *  Copyright (C) 2003 Adam Olsen *  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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. */package com.valhalla.jbother;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.util.ArrayList;import java.util.Hashtable;import java.util.Locale;import java.util.ResourceBundle;import javax.swing.BorderFactory;import javax.swing.Box;import javax.swing.BoxLayout;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JList;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.ListSelectionModel;import com.valhalla.gui.Standard;import com.valhalla.misc.GnuPG;/** * Allows a user to edit a profile * * @author Andrey Zakirov * @created February, 2004 */public class KeySelectDialog extends JDialog {    private ResourceBundle resources = ResourceBundle.getBundle(            "JBotherBundle", Locale.getDefault());    private JPanel main;    private JButton okButton = new JButton(resources.getString("okButton"));    private JButton cancelButton = new JButton(resources            .getString("cancelButton"));    private String name = null;    private String id = null;    private String type;    private String[] entries;    private ArrayList entries2 = new ArrayList();    private Hashtable keys = new Hashtable();    private JList sampleJList = new JList();    /**     * Contructs the ProfileEditorDialog     *     * @param dialog     *            the ProfileManager dialog that's calling this editor, or <tt>     *      null</tt>     *            if nothing is calling it     * @param type     *            Description of the Parameter     */    public KeySelectDialog(JDialog dialog, String type) {        super(dialog, "", true);        this.type = type;    }    /**     * Constructor for the KeySelectDialog object     *     * @param type     *            Description of the Parameter     */    public KeySelectDialog(String type) {        super((JFrame) null, "", true);        this.type = type;    }    /**     * Description of the Method     */    public void showDialog() {        setTitle(resources.getString("gnupgKeySelector"));        GnuPG gnupg = new GnuPG();        boolean res = false;        if (type.equals("sec")) {            res = gnupg.listSecretKeys("");        } else {            res = gnupg.listKeys("");        }        if (!res) {            Standard.warningMessage(null, "Error running GnuPG",                    "Error running GnuPG: " + gnupg.getErrorString());            return;        }        entries = gnupg.getResult().split("\n");        for (int i = 0; i < entries.length; i++) {            id = entries[i]                    .replaceAll(                            "^"                                    + type                                    + ":[^:]*:[^:]*:[^:]*:([^:]*):[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*$",                            "$1");            name = entries[i]                    .replaceAll(                            "^"                                    + type                                    + ":[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:([^:]*):[^:]*:[^:]*:[^:]*$",                            "$1");            if ((!name.equals(entries[i])) && (!id.equals(entries[i]))) {                entries2.add(name);                keys.put(name, id);            }        }        name = null;        id = null;        sampleJList.setListData(entries2.toArray());        sampleJList.setSelectedIndex(0);        sampleJList.setVisibleRowCount(4);        sampleJList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);        sampleJList.addMouseListener(new MouseAdapter() {            public void mouseClicked(MouseEvent e) {                if (e.getClickCount() == 2) {                    okHandler();                }            }        });        JScrollPane listPane = new JScrollPane(sampleJList);        main = (JPanel) getContentPane();        JPanel listPanel = new JPanel();        JPanel buttonPanel = new JPanel();        buttonPanel.setBorder(BorderFactory.createEmptyBorder(2, 5, 2, 5));        buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.X_AXIS));        buttonPanel.add(Box.createHorizontalGlue());        buttonPanel.add(okButton);        buttonPanel.add(cancelButton);        listPanel.setBorder(BorderFactory.createEmptyBorder(2, 5, 2, 5));        listPanel.setLayout(new BoxLayout(listPanel, BoxLayout.Y_AXIS));        listPanel.add(Box.createHorizontalGlue());        listPanel.add(listPane);        listPanel.add(buttonPanel);        main.add(listPanel);        addListeners();        pack();        setLocationRelativeTo(null);        addWindowListener(new WindowAdapter() {            public void windowClosing(WindowEvent e) {                okHandler();            }        });        this.setVisible(true);    }    /**     * Adds the event listeners to the buttons     */    private void addListeners() {        PEDialogListener listener = new PEDialogListener();        okButton.addActionListener(listener);        cancelButton.addActionListener(listener);    }    /**     * Handles events     *     * h *@author synic     *     * @created November 30, 2004     */    class PEDialogListener implements ActionListener {        /**         * Description of the Method         *         * @param e         *            Description of the Parameter         */        public void actionPerformed(ActionEvent e) {            if (e.getSource() == cancelButton) {                cancelHandler();            } else {                okHandler();            }        }    }    /**     * Cancels the dialog, and quits if exitOnClose is set to true     */    private void okHandler() {        if (sampleJList.getSelectedValue() != null) {            this.name = sampleJList.getSelectedValue().toString();            this.id = keys.get(sampleJList.getSelectedValue()).toString();        }        dispose();    }    /**     * Description of the Method     */    private void cancelHandler() {        dispose();    }    /**     * Gets the name attribute of the KeySelectDialog object     *     * @return The name value     */    public String getName() {        return this.name;    }    /**     * Gets the iD attribute of the KeySelectDialog object     *     * @return The iD value     */    public String getID() {        return this.id;    }}

⌨️ 快捷键说明

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