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

📄 notificationpreferencespanel.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.*;import java.awt.event.*;import java.net.URL;import java.util.Iterator;import java.util.Locale;import java.util.ResourceBundle;import java.util.Vector;import javax.swing.*;import javax.swing.event.*;import com.valhalla.gui.MJTextField;import com.valhalla.gui.Standard;import com.valhalla.jbother.BuddyList;import com.valhalla.jbother.ConversationPanel;import com.valhalla.jbother.MessageDelegator;import com.valhalla.settings.Settings;import com.valhalla.settings.TempSettings;/** * Allows the user to change General Preferences * * @author Adam Olsen * @version 1.0 */class NotificationPreferencesPanel extends JPanel implements PreferencesPanel {    private ResourceBundle resources = ResourceBundle.getBundle(            "JBotherBundle", Locale.getDefault());    private PreferencesDialog prefs;    private GridBagLayout grid = new GridBagLayout();    private GridBagConstraints c = new GridBagConstraints();    private JCheckBox focusWindow = new JCheckBox(resources            .getString("focusConversations"));    private JCheckBox usePopup = new JCheckBox(resources.getString("usePopup"));    private JCheckBox popupForSignOn = new JCheckBox(resources.getString("popupForSignOn"));    private JCheckBox popupForSignOff = new JCheckBox(resources.getString("popupForSignOff"));    private JCheckBox popupForGroupMessage = new JCheckBox(resources.getString("popupForGroupMessage"));    private int npopupx = 100;    private int npopupy = 100;    private NotificationWindow nw = null;    /**     * Creates the PreferencesPanel     *     * @param dialog     *            the enclosing PreferencesDialog     */    public NotificationPreferencesPanel(PreferencesDialog dialog) {        this.prefs = dialog;        setBorder(BorderFactory.createTitledBorder(resources                .getString("generalPreferences")));        setLayout(grid);        usePopup.addActionListener(new NPMouseListener());        c.gridx = 0;        c.gridy = 0;        c.fill = GridBagConstraints.HORIZONTAL;        c.anchor = GridBagConstraints.WEST;        c.weightx = .5;        c.gridwidth = 2;        grid.setConstraints(focusWindow, c);        add(focusWindow);        c.gridy++;        grid.setConstraints(usePopup, c);        add(usePopup);        c.gridy++;        grid.setConstraints(popupForSignOn, c);        add(popupForSignOn);        c.gridy++;        grid.setConstraints(popupForSignOff, c);        add(popupForSignOff);        c.gridy++;        grid.setConstraints(popupForGroupMessage, c);        add(popupForGroupMessage);        //this is the space taker        JLabel blankLabel = new JLabel("");        c.weighty = .5;        c.gridx = 0;        c.gridwidth = 2;        c.gridy++;        grid.setConstraints(blankLabel, c);        add(blankLabel);        loadSettings();    }    private void enableDisable(boolean selected)    {        popupForSignOn.setEnabled(selected);        popupForSignOff.setEnabled(selected);        popupForGroupMessage.setEnabled(selected);    }    private class NPMouseListener implements ActionListener {        public void actionPerformed(ActionEvent e) {            if (usePopup.isSelected() && nw == null) {                Standard.warningMessage(prefs, resources                        .getString("preferences"), resources                        .getString("usePopupDescription"));                nw = new NotificationWindow();            } else if (!usePopup.isSelected() && nw != null) {                nw.dispose();                nw = null;            }            enableDisable(usePopup.isSelected());        }    }    /**     * Loads settings from the settings file and fills out the form for defaults     */    private void loadSettings() {        focusWindow.setSelected(Settings.getInstance()                .getBoolean("focusWindow"));        usePopup.setSelected(Settings.getInstance().getBoolean("usePopup"));        try {            npopupx = Integer.parseInt(Settings.getInstance().getProperty(                    "NPopupX"));            npopupy = Integer.parseInt(Settings.getInstance().getProperty(                    "NPopupY"));        } catch (Exception e) {        }        popupForSignOn.setSelected(Settings.getInstance().getBoolean("popupForSignOn"));        popupForSignOff.setSelected(Settings.getInstance().getBoolean("popupForSignOff"));        popupForGroupMessage.setSelected(Settings.getInstance().getBoolean("popupForGroupMessage"));        enableDisable(usePopup.isSelected());    }    /**     * Returns the currently chosen settings     */    public TempSettings getSettings() {        TempSettings mySettings = new TempSettings();        mySettings.setBoolean("focusWindow", focusWindow.isSelected());        mySettings.setBoolean("usePopup", usePopup.isSelected());        mySettings.setBoolean("popupForSignOn", popupForSignOn.isSelected());        mySettings.setBoolean("popupForSignOff", popupForSignOff.isSelected());        mySettings.setBoolean("popupForGroupMessage", popupForGroupMessage.isSelected());        if (nw != null) {            nw.saveLocation();            nw.dispose();        }        mySettings.setProperty("NPopupX", "" + npopupx);        mySettings.setProperty("NPopupY", "" + npopupy);        return mySettings;    }    class NotificationWindow extends JFrame {        public NotificationWindow() {            super("Drag & Close");            JPanel panel = (JPanel) getContentPane();            panel.setLayout(new BorderLayout());            URL light = getClass().getClassLoader().getResource(                    "images/lightbulb.png");            StringBuffer mess = new StringBuffer();            mess.append("<html><table><tr><td valign='top' width='2%'>")                    .append("<img src='").append(light.toString()).append(                            "'></td>").append(                            "<td valign='top'><b>Notification").append(                            "</b><br>Drag & Close").append(                            "</td></tr></table></html>");            panel.add(new JLabel(mess.toString()), BorderLayout.CENTER);            panel.setBorder(BorderFactory.createLineBorder(Color.BLACK));            panel.setBackground(new Color(247, 255, 117));            pack();            setSize(new Dimension(200, 82));            setLocation(npopupx, npopupy);            setResizable(false);            setVisible(true);            addWindowListener(new WindowAdapter() {                public void windowClosing(WindowEvent ex) {                    nw = null;                    saveLocation();                }            });            toFront();        }        public void saveLocation() {            Point p = getLocation();            npopupx = (int) p.getX();            npopupy = (int) p.getY();        }    }}

⌨️ 快捷键说明

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