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

📄 privacypreferencespanel.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.preferences;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.Hashtable;import java.util.Iterator;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.JLabel;import javax.swing.JList;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.ListSelectionModel;import com.valhalla.gui.Standard;import com.valhalla.jbother.BuddyList;import com.valhalla.jbother.JBother;import com.valhalla.settings.TempSettings;/** * Allows the user to manage the User IDs mantained in the blocked user * Hashtable. If any user in this list sends us a message, it will be ignored *  * @author Adam Olsen * @version 1.0 */class PrivacyPreferencesPanel extends JPanel implements PreferencesPanel {    private ResourceBundle resources = ResourceBundle.getBundle(            "JBotherBundle", Locale.getDefault());    private JList blockedList = new JList();    private PreferencesDialog prefs;    private GridBagLayout grid = new GridBagLayout();    private GridBagConstraints c = new GridBagConstraints();    private JLabel label = new JLabel(resources.getString("blockedUsers") + " ");    private JButton addButton = new JButton(resources.getString("addButton")),            removeButton = new JButton(resources.getString("deleteButton"));    // we use a clone of the blocked users so that no changes are written or    // used    // unless the user clicks OK or Apply in the preferences dialog.    private Hashtable users = (Hashtable) BuddyList.getInstance()            .getBlockedUsers().clone();    /**     * Sets up the panel     *      * @param dialog     *            the enclosing PreferencesDialog     */    public PrivacyPreferencesPanel(PreferencesDialog dialog) {        this.prefs = dialog;        setBorder(BorderFactory.createTitledBorder(resources                .getString("privacySettings")));        c.gridx = 0;        c.gridy = 0;        c.fill = GridBagConstraints.BOTH;        c.gridwidth = 2;        blockedList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);        blockedList.setBorder(BorderFactory.createEtchedBorder());        setLayout(grid);        getBlocked();        grid.setConstraints(label, c);        add(label);        c.weightx = 1.0;        c.weighty = 1.0;        c.gridy++;        grid.setConstraints(blockedList, c);        add(blockedList);        JPanel buttonPanel = new JPanel();        buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.X_AXIS));        buttonPanel.add(addButton);        buttonPanel.add(removeButton);        buttonPanel.add(Box.createHorizontalGlue());        c.gridy++;        c.weightx = 0;        c.weighty = 0;        grid.setConstraints(buttonPanel, c);        add(buttonPanel);        addListeners();    }    /**     * Adds listeners to different events in the panel     */    private void addListeners() {        removeButton.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                String item = (String) blockedList.getSelectedValue();                if (item != null)                    users.remove(item);                getBlocked();            }        });        addButton.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                // grab a user id to add to the list                String result = (String) JOptionPane.showInputDialog(prefs,                        resources.getString("enterIdToBlock"), resources                                .getString("blockUser"),                        JOptionPane.QUESTION_MESSAGE, null, null, null);                if (result != null && !result.equals("")) {                    users.put(result, "blocked");                    getBlocked();                }            }        });    }    /**     * Set up the blocked users list     */    private void getBlocked() {        ArrayList list = new ArrayList();        Iterator i = users.keySet().iterator();        while (i.hasNext())            list.add(i.next());        blockedList.setListData(list.toArray());        blockedList.validate();    }    /**     * This PreferencesPanel is different than the others in that it doesn't     * actually change anything in Settings. Here we just return the same     * Settings that were passed in, and write the new blocked users to the     * blocked file     */    public TempSettings getSettings() {        File blockedFile = new File(JBother.profileDir + File.separator                + "blocked");        try {            FileWriter fw = new FileWriter(blockedFile);            PrintWriter out = new PrintWriter(fw);            Iterator i = users.keySet().iterator();            while (i.hasNext()) {                // write each user id on a new line                out.println((String) i.next());            }            fw.close();        } catch (IOException ex) {            Standard.warningMessage(prefs, resources.getString("blockUser"),                    resources.getString("problemWritingBlockedFile"));        }        BuddyList.getInstance().setBlockedUsers(users);        return new TempSettings();    }}

⌨️ 快捷键说明

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