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

📄 generalsettingspanel.java

📁 一个类似QQ的在线通讯聊天软件原码,适合初学者参考学习。
💻 JAVA
字号:
package openicq.gui;import java.awt.BorderLayout;import javax.swing.*;import javax.swing.border.Border;import openicq.Start;import openicq.data.Default;import openicq.data.Resource;import openicq.management.Settings;import openicq.net.Flag;import openicq.net.SetPermsUserInfoRequest;import org.javalib.gui.SpringToolkit;import org.javalib.gui.model.SettingsDisplayPanel;import org.javalib.io.CryptFile;/** * The <code>GeneralSettingsPanel</code> class contains the panel with the * general settings. * @author Hansgeorg Schwibbe * @copyright 2004 */public class GeneralSettingsPanel extends SettingsDisplayPanel{  private JDialog parent;  private JPanel jPanelAuth = new JPanel();  private JRadioButton jRadioButtonNoAuth = new JRadioButton();  private JRadioButton jRadioButtonAuth = new JRadioButton();  private ButtonGroup buttonGroupAuth = new ButtonGroup();  private JPanel jPanelAntiSpam = new JPanel();  private JCheckBox jCheckBoxDenyUnknown = new JCheckBox();  private JPanel jPanelSecurity = new JPanel();  private JRadioButton jRadioButtonLowSecurity = new JRadioButton();  private JRadioButton jRadioButtonMediumSecurity = new JRadioButton();  private JRadioButton jRadioButtonHighSecurity = new JRadioButton();  private ButtonGroup buttonGroupSecurity = new ButtonGroup();  /**   * Initializes a new instance of the class <code>GeneralSettingsPanel</code>.   * @param parent the parent dialog   */  public GeneralSettingsPanel(JDialog parent)  {    this.parent = parent;    String text;    // Authorisation panel    jPanelAuth.setLayout(new SpringLayout());    text = ((String[]) SettingsDialog.localized.get("generalSettingsPanel"))[0];    jPanelAuth.setBorder(BorderFactory.createTitledBorder(text));    text = ((String[]) SettingsDialog.localized.get("generalSettingsPanel"))[1];    jRadioButtonNoAuth.setText(text);    text = ((String[]) SettingsDialog.localized.get("generalSettingsPanel"))[2];    jRadioButtonAuth.setText(text);    buttonGroupAuth.add(jRadioButtonAuth);    buttonGroupAuth.add(jRadioButtonNoAuth);    jPanelAuth.add(jRadioButtonAuth);    jPanelAuth.add(jRadioButtonNoAuth);    SpringToolkit.makeCompactGrid(jPanelAuth, 2, 1, 5, 0, 5, 5);    // Spam panel    jPanelAntiSpam.setLayout(new SpringLayout());    text = ((String[]) SettingsDialog.localized.get("generalSettingsPanel"))[3];    jPanelAntiSpam.setBorder(BorderFactory.createTitledBorder(text));    text = ((String[]) SettingsDialog.localized.get("generalSettingsPanel"))[4];    jCheckBoxDenyUnknown.setText(text);    jPanelAntiSpam.add(jCheckBoxDenyUnknown);    SpringToolkit.makeCompactGrid(jPanelAntiSpam, 1, 1, 5, 0, 5, 5);    // Visibility panel    jPanelSecurity.setLayout(new SpringLayout());    text = ((String[]) SettingsDialog.localized.get("generalSettingsPanel"))[5];    jPanelSecurity.setBorder(BorderFactory.createTitledBorder(text));    text = ((String[]) SettingsDialog.localized.get("generalSettingsPanel"))[6];    jRadioButtonLowSecurity.setText(text);    text = ((String[]) SettingsDialog.localized.get("generalSettingsPanel"))[7];    jRadioButtonMediumSecurity.setText(text);    text = ((String[]) SettingsDialog.localized.get("generalSettingsPanel"))[8];    jRadioButtonHighSecurity.setText(text);    buttonGroupSecurity.add(jRadioButtonLowSecurity);    buttonGroupSecurity.add(jRadioButtonMediumSecurity);    buttonGroupSecurity.add(jRadioButtonHighSecurity);    jPanelSecurity.add(jRadioButtonLowSecurity);    jPanelSecurity.add(jRadioButtonMediumSecurity);    jPanelSecurity.add(jRadioButtonHighSecurity);    SpringToolkit.makeCompactGrid(jPanelSecurity, 3, 1, 5, 0, 5, 5);    // This panel    Border innerBorder = BorderFactory.createLoweredBevelBorder();    Border outerBorder = BorderFactory.createEmptyBorder(10, 10, 10, 10);    setBorder(BorderFactory.createCompoundBorder(innerBorder, outerBorder));    setLayout(new BorderLayout());    this.add(jPanelAuth, BorderLayout.NORTH);    this.add(jPanelSecurity, BorderLayout.CENTER);    this.add(jPanelAntiSpam, BorderLayout.SOUTH);  }  /**   * (non-Javadoc)   * @see org.javalib.gui.model.SettingsDisplayPanel#getContinueWithoutSavingMessage()   */  public String getContinueWithoutSavingMessage()  {    return ((String[]) SettingsDialog.localized.get("warningMessages"))[0]           + "\n"           + ((String[]) SettingsDialog.localized.get("questionMessages"))[0];  }  /**   * (non-Javadoc)   * @see org.javalib.gui.model.SettingsDisplayPanel#getContinueWithoutSavingTitle()   */  public String getContinueWithoutSavingTitle()  {    return ((String[]) SettingsDialog.localized.get("messageTitles"))[2];  }  /**   * (non-Javadoc)   * @see org.javalib.gui.model.SettingsDisplayPanel#getListIconPath()   */  public String getListIconPath()  {    return Resource.ICON_SOURCE_SETTINGS[0];  }  /**   * (non-Javadoc)   * @see org.javalib.gui.model.SettingsDisplayPanel#getListName()   */  public String getListName()  {    return ((String[]) SettingsDialog.localized.get("settingsDialogList"))[0];  }  /**   * (non-Javadoc)   * @see org.javalib.gui.model.SettingsDisplayPanel#getSaveButtonText()   */  public String getSaveButtonText()  {    return ((String[]) SettingsDialog.localized.get("stdButtons"))[2] + " ("           + ((String[]) SettingsDialog.localized.get("settingsDialogList"))[0]           + ")";  }  /**   * (non-Javadoc)   * @see org.javalib.gui.model.SettingsDisplayPanel#getSaveSettingsErrorTitle()   */  public String getSaveSettingsErrorTitle()  {    return ((String[]) SettingsDialog.localized.get("messageTitles"))[0];  }  /**   * (non-Javadoc)   * @see org.javalib.gui.model.SettingsDisplayPanel#hasChanged()   */  public boolean hasChanged()  {    synchronized (Start.env)    {      int securityLevel = Start.env.getSecurityLevel();      if (Start.env.getDenyUnknown() != jCheckBoxDenyUnknown.isSelected()          || Start.env.getOwnContact().getAuthorizationRequired() != jRadioButtonAuth.isSelected()          || (jRadioButtonLowSecurity.isSelected() && securityLevel != Settings.LOW_SECURITY)          || (jRadioButtonMediumSecurity.isSelected() && securityLevel != Settings.MEDIUM_SECURITY)          || (jRadioButtonHighSecurity.isSelected() && securityLevel != Settings.HIGH_SECURITY))      {        return true;      }    }    return false;  }  /**   * (non-Javadoc)   * @see org.javalib.gui.model.SettingsDisplayPanel#loadSettings()   */  public void loadSettings()  {    synchronized (Start.env)    {      if (Start.env.getOwnContact().getAuthorizationRequired() == true)      {        this.jRadioButtonAuth.setSelected(true);      }      else      {        this.jRadioButtonNoAuth.setSelected(true);      }      if (Start.env.getDenyUnknown() == true)      {        this.jCheckBoxDenyUnknown.setSelected(true);      }      else      {        this.jCheckBoxDenyUnknown.setSelected(false);      }      if (Start.env.getSecurityLevel() == Settings.LOW_SECURITY)      {        this.jRadioButtonLowSecurity.setSelected(true);      }      else if (Start.env.getSecurityLevel() == Settings.MEDIUM_SECURITY)      {        this.jRadioButtonMediumSecurity.setSelected(true);      }      else      {        this.jRadioButtonHighSecurity.setSelected(true);      }    }  }  /**   * (non-Javadoc)   * @see org.javalib.gui.model.SettingsDisplayPanel#saveSettings()   */  public void saveSettings() throws Exception  {    synchronized (Start.env)    {      Object[] fileData = new Object[2];      fileData[0] = String.valueOf(this.jCheckBoxDenyUnknown.isSelected());      if (this.jRadioButtonLowSecurity.isSelected())      {        fileData[1] = String.valueOf(Settings.LOW_SECURITY);      }      else if (this.jRadioButtonMediumSecurity.isSelected())      {        fileData[1] = String.valueOf(Settings.MEDIUM_SECURITY);      }      else      {        fileData[1] = String.valueOf(Settings.HIGH_SECURITY);      }      try      {        CryptFile.write(Default.FOLDER_NAME_HOME + "/"                        + Start.env.getOwnContact().getContactId() + "/"                        + Default.FILE_NAME_GENERAL_DATA, fileData);        Start.env.setDenyUnknown(Boolean.valueOf(fileData[0].toString())                                        .booleanValue());        Start.env.setSecurityLevel(Integer.parseInt(fileData[1].toString()));      }      catch (Exception ex)      {        String msg;        msg = ((String[]) SettingsDialog.localized.get("errorMessages"))[8];        throw new Exception(msg);      }    }    final int authorization;    if (jRadioButtonAuth.isSelected())    {      authorization = 0;    }    else    {      authorization = 1;    }    synchronized (Start.env)    {      new SetPermsUserInfoRequest(Start.env.getConnection(),                                  Integer.parseInt(Start.env.getOwnContact()                                                            .getContactId()),                                  authorization, 0, 0)      {        public void onResponse(int success)        {          if (success != Flag.SUCCESS)          {            String msg, title;            msg = ((String[]) SettingsDialog.localized.get("errorMessages"))[23];            title = ((String[]) SettingsDialog.localized.get("messageTitles"))[0];            JOptionPane.showMessageDialog(parent, msg, title,                                          JOptionPane.ERROR_MESSAGE);            return;          }          synchronized (Start.env)          {            if (authorization == 0)            {              Start.env.getOwnContact().setAuthorizationRequired(true);            }            else if (authorization == 1)            {              Start.env.getOwnContact().setAuthorizationRequired(false);            }          }        }      };    }  }}

⌨️ 快捷键说明

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