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

📄 languagesettingspanel.java

📁 一个类似QQ的在线通讯聊天软件原码,适合初学者参考学习。
💻 JAVA
字号:
package openicq.gui;

import java.awt.BorderLayout;
import java.util.ArrayList;

import javax.swing.*;
import javax.swing.border.Border;

import openicq.Start;
import openicq.data.Default;
import openicq.data.Resource;

import org.javalib.dynamic.DynLoader;
import org.javalib.dynamic.localize.Localization;
import org.javalib.gui.IconListCellRenderer;
import org.javalib.gui.model.SettingsDisplayPanel;
import org.javalib.io.CryptFile;

/**
 * The <code>LanguageSettingsPanel</code> class contains the panel with the
 * language settings.
 * @author Hansgeorg Schwibbe
 * @copyright 2004
 */
public class LanguageSettingsPanel extends SettingsDisplayPanel
{
  private SettingsDialog settingsDialog;

  private JList jListLanguage = new JList();

  private JScrollPane jScrollPaneLang = new JScrollPane();

  private IconListCellRenderer iconRenderer;

  /**
   * Initializes a new instance of the class <code>LanguageSettingsPanel</code>.
   * @param parent the parent dialog
   */
  public LanguageSettingsPanel(JDialog parent)
  {
    settingsDialog = (SettingsDialog) parent;
    jListLanguage.setCellRenderer(iconRenderer);
    Border innerBorder = BorderFactory.createEmptyBorder(12, 12, 12, 12);
    Border outerBorder = BorderFactory.createEtchedBorder();
    jScrollPaneLang.setBorder(BorderFactory.createCompoundBorder(innerBorder,
                                                                 outerBorder));
    jScrollPaneLang.getViewport().add(jListLanguage, BorderLayout.CENTER);
    this.setLayout(new BorderLayout());
    this.setBorder(BorderFactory.createLoweredBevelBorder());
    this.add(jScrollPaneLang);
  }

  /**
   * (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[2];
  }

  /**
   * (non-Javadoc)
   * @see org.javalib.gui.model.SettingsDisplayPanel#getListName()
   */
  public String getListName()
  {
    return ((String[]) SettingsDialog.localized.get("settingsDialogList"))[2];
  }

  /**
   * (non-Javadoc)
   * @see org.javalib.gui.model.SettingsDisplayPanel#getSaveButtonText()
   */
  public String getSaveButtonText()
  {
    return ((String[]) SettingsDialog.localized.get("stdButtons"))[2] + " ("
           + ((String[]) SettingsDialog.localized.get("settingsDialogList"))[2]
           + ")";
  }

  /**
   * (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)
    {
      if (jListLanguage.getSelectedIndex() >= 0
          && !jListLanguage.getSelectedValue()
                           .equals(Start.env.getLocalizationName()))
      {
        return true;
      }
    }
    return false;
  }

  /**
   * (non-Javadoc)
   * @see org.javalib.gui.model.SettingsDisplayPanel#loadSettings()
   */
  public void loadSettings()
  {
    String[] classnames = new String[] {};
    try
    {
      classnames = DynLoader.listClasses(Resource.FOLDER_NAME_LANGUAGE_CLASSES);
    }
    catch (Exception ex)
    {
      System.err.println(this.getClass().getName() + ": " + ex.toString());
    }
    jListLanguage.removeAll();
    ArrayList listData = new ArrayList();
    ArrayList iconSources = new ArrayList();
    for (int index = 0; index < classnames.length; index++)
    {
      listData.add(classnames[index]);
      iconSources.add(Resource.FOLDER_NAME_LANGUAGE_ICONS + "/"
                      + classnames[index] + ".png");
    }
    IconListCellRenderer renderer;
    renderer = new IconListCellRenderer(iconSources.toArray());
    jListLanguage.setListData(listData.toArray());
    jListLanguage.setCellRenderer(renderer);
    synchronized (Start.env)
    {
      jListLanguage.setSelectedValue(Start.env.getLocalizationName(), true);
    }
  }

  /**
   * (non-Javadoc)
   * @see org.javalib.gui.model.SettingsDisplayPanel#saveSettings()
   */
  public void saveSettings() throws Exception
  {
    if (jListLanguage.getSelectedIndex() >= 0)
    {
      try
      {
        MainFrame mainFrame = settingsDialog.mainFrame;
        // Save the language settings
        Object[] fileData = new Object[]
        { Resource.FOLDER_NAME_LANGUAGE_CLASSES + "/"
          + jListLanguage.getSelectedValue() + ".class"
        };
        synchronized (Start.env)
        {
          CryptFile.write(Default.FOLDER_NAME_HOME + "/"
                          + Start.env.getOwnContact().getContactId() + "/"
                          + Default.FILE_NAME_LANGUAGE, fileData);
          // Set the language
          String path = String.valueOf(fileData[0]);
          Start.env.setLocalization(new Localization(path, "language"));
          mainFrame.ownDetailsDialog.localize();
          mainFrame.userDetailsDialog.localize();
          mainFrame.contactDialog.localize();
          mainFrame.infoDialog.localize();
          int size = mainFrame.contactPanel.listChatFrames.size();
          for (int index = 0; index < size; index++)
          {
            ((ChatFrame) mainFrame.contactPanel.listChatFrames.get(index)).localize();
          }
          mainFrame.localize();
          mainFrame.setMinimumWindowSize();
          settingsDialog.localize();
          settingsDialog.visibilityPanel.loadSettings();
        }
      }
      catch (Exception ex)
      {
        String msg;
        System.out.println(111);
        msg = ((String[]) SettingsDialog.localized.get("errorMessages"))[18];
        throw new Exception(msg);
      }
    }
  }
}

⌨️ 快捷键说明

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