亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mainframe.java

?? ∥顯示數據文件未壓縮大小及壓縮大小單行文本顯示域存儲隨機生成的數據
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
package org.jr.jzj;

/**
 * <p>Copyright: Copyright (c) 2002-2003</p>
 * <p>Company: JavaResearch(http://www.javaresearch.org)</p>
 * <p>最后更新日期:2003年3月4日
 * @author Cherami,Barney,Brain
 * @version 0.8
 */

import java.io.*;
import java.util.*;
import java.util.prefs.*;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;

import org.jr.io.*;
import org.jr.swing.*;
import org.jr.swing.filter.*;
import org.jr.swing.util.*;
import org.jr.text.*;
import org.jr.util.*;

/**
 * 系統的主界面類,完成界面的所有內容的構建。
 */
public class MainFrame
    extends JFrame {
  private static JZJLogger logger = new JZJLogger(MainFrame.class);
  Preferences preference = JZipJar.preference;
  JZJResources resource = JZJResources.getResources(); //系統所需的所有資源
  public File currentDirectory = new File(preference.get("current_directory",
      "."));
  FileSizeFormat formatter = new FileSizeFormat(true);
  Container contentPane;
  JMenuBar menubar;
  JToolBar toolbar;
  NewAction newAction;
  OpenAction openAction;
  CloseAction closeAction;
  ExitAction exitAction;
  AddAction addAction;
  DeleteAction deleteAction;
  ExtractAction extractAction;
  ViewAction viewAction;
  LookFeelAction[] lookFeelActions;
  OptionAction optionAction;
  AboutAction aboutAction;
  String[] lookfeelNames;
  JSplitPane splitPane;
  JScrollPane tablePane;
  JScrollPane treePane;
  JZJTree tree;
  JZJTable table;
  JPanel statusbar;
  JLabel totaInforlLabel;
  JLabel selectedInforLabel;
  ExtractDialog extractDialog;
  ViewFrame viewFrame;
  AboutDialog aboutDialog;
  OptionDialog optionDialog;
  JZJTableModel tableModel;
  JZJTreeModel treeModel;
  String frameTitle;
  String subTitle;
  JZJFile currentZipFile;
  Locale currentLocale = JZipJar.getSystemLocale();
  String tmpDirectory = preference.get("work_directory",
                                       System.getProperty("java.io.tmpdir", "."));
  String[] selectedInfor = new String[2];
  String[] totalInfor = new String[2];
  MemoryWatchPanel memoryPanel;
  RecentFilesManager recentFilesManager;

  JDynamicButton newButton;
  JDynamicButton closeButton;
  JDynamicButton addButton;
  JDynamicButton deleteButton;
  JDynamicButton openButton;
  JDynamicButton extractButton;
  JDynamicButton viewButton;
  JDynamicButton optionsButton;
  JDynamicButton aboutButton;
  JDynamicButton exitButton;
  ArrayList toolbarButtons = new ArrayList();

  JMenu fileMenu;
  JMenuItem newMenuItem;
  JMenuItem closeMenuItem;
  JMenuItem addMenuItem;
  JMenuItem deleteMenuItem;
  JMenuItem openMenuItem;
  JMenuItem extractMenuItem;
  JMenuItem viewMenuItem;
  JMenuItem aboutMenuItem;
  JMenuItem exitMenuItem;
  JMenuItem optionMenuItem;
  /**
   * 構造方法,完成界面所有元素的加載
   */
  public MainFrame() {
    init();
    createToolbar();
    createMenubar();
    createTable();
    createTree();
    createSplitPane();
    createStatusbar();
    setJMenuBar(menubar);
    contentPane.add(toolbar, "North");
    contentPane.add(splitPane, "Center");
    contentPane.add(statusbar, "South");
    disableThem();
    recentFilesManager = new RecentFilesManager(preference.getInt("recentfiles",
        8), fileMenu, true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }

  /**
   * 界面構成需要進行的所有初始化工作,主要是幾個主要容器和Action的初始化。
   */
  private void init() {
    frameTitle = resource.getString("j_title");
    setTitle(frameTitle);
    contentPane = this.getContentPane();
    menubar = new JMenuBar();
    toolbar = new JToolBar();
    statusbar = new JPanel();
    newAction = new NewAction();
    openAction = new OpenAction();
    closeAction = new CloseAction();
    exitAction = new ExitAction();
    addAction = new AddAction();
    deleteAction = new DeleteAction();
    extractAction = new ExtractAction();
    viewAction = new ViewAction();
    optionAction = new OptionAction();
    aboutAction = new AboutAction();
    UIManager.LookAndFeelInfo[] lookfeels = UIManager.getInstalledLookAndFeels();
    lookFeelActions = new LookFeelAction[lookfeels.length];
    lookfeelNames = new String[lookfeels.length];
    for (int i = 0; i < lookfeels.length; i++) {
      lookfeelNames[i] = lookfeels[i].getName();
      String lookfeelClassName = lookfeels[i].getClassName();
      lookFeelActions[i] = new LookFeelAction(lookfeelClassName);
    }
    JZJFile.setWorkDirectory(tmpDirectory);
  }

  /**
   * 創建工具欄。
   */
  private void createToolbar() {
    newButton = createToolbarButton("b_new");
    newButton.addActionListener(newAction);
    openButton = createToolbarButton("b_open");
    openButton.addActionListener(openAction);
    extractButton = createToolbarButton("b_extract");
    extractButton.addActionListener(extractAction);
    addButton = createToolbarButton("b_add");
    addButton.addActionListener(addAction);
    deleteButton = createToolbarButton("b_delete");
    deleteButton.addActionListener(deleteAction);
    viewButton = createToolbarButton("b_view");
    viewButton.addActionListener(viewAction);
    closeButton = createToolbarButton("b_close");
    closeButton.addActionListener(closeAction);
    optionsButton = createToolbarButton("b_option");
    optionsButton.addActionListener(optionAction);
    aboutButton = createToolbarButton("b_about");
    aboutButton.addActionListener(aboutAction);
    exitButton = createToolbarButton("b_exit");
    exitButton.addActionListener(exitAction);
  }

  /**
   * 創建所有菜單項。
   */
  private void createMenubar() {
    JMenu menu;

    fileMenu = createTopMenu("m_file");
    fileMenu.setMnemonic(KeyEvent.VK_F);
    newMenuItem = SwingUtil.createMenuItem( (MenuItemProperty) resource.
                                           getObject("m_new"), fileMenu);
    newMenuItem.addActionListener(newAction);
    openMenuItem = SwingUtil.createMenuItem( (MenuItemProperty) resource.
                                            getObject("m_open"), fileMenu);
    openMenuItem.addActionListener(openAction);
    closeMenuItem = SwingUtil.createMenuItem( (MenuItemProperty) resource.
                                             getObject("m_close"), fileMenu);
    closeMenuItem.addActionListener(closeAction);
    fileMenu.addSeparator();
    exitMenuItem = SwingUtil.createMenuItem( (MenuItemProperty) resource.
                                            getObject("m_exit"), fileMenu);
    exitMenuItem.addActionListener(exitAction);

    menu = createTopMenu("m_actions");
    menu.setMnemonic(KeyEvent.VK_A);
    addMenuItem = SwingUtil.createMenuItem( (MenuItemProperty) resource.
                                           getObject("m_add"), menu);
    addMenuItem.addActionListener(addAction);
    deleteMenuItem = SwingUtil.createMenuItem( (MenuItemProperty) resource.
                                              getObject("m_delete"), menu);
    deleteMenuItem.addActionListener(deleteAction);
    extractMenuItem = SwingUtil.createMenuItem( (MenuItemProperty) resource.
                                               getObject("m_extract"), menu);
    extractMenuItem.addActionListener(extractAction);
    viewMenuItem = SwingUtil.createMenuItem( (MenuItemProperty) resource.
                                            getObject("m_view"), menu);
    viewMenuItem.addActionListener(viewAction);

    menu = createTopMenu("m_option");
    menu.setMnemonic(KeyEvent.VK_O);
    optionMenuItem = SwingUtil.createMenuItem( (MenuItemProperty) resource.
                                              getObject("m_o_option"), menu);
    optionMenuItem.addActionListener(optionAction);
    JMenu lookfeelMenu = SwingUtil.createMenu( (MenuProperty) resource.
                                              getObject("m_lookfeel"), menu);
    ButtonGroup lookfeelGroup = new ButtonGroup();
    JMenuItem menuItem;
    for (int i = 0; i < lookfeelNames.length; i++) {
      menuItem = new JRadioButtonMenuItem(lookfeelNames[i]);
      menuItem.setMnemonic(lookfeelNames[i].charAt(0));
      lookfeelMenu.add(menuItem);
      menuItem.addActionListener(lookFeelActions[i]);
      lookfeelGroup.add(menuItem);
    }

    menu = createTopMenu("m_help");
    menu.setMnemonic(KeyEvent.VK_H);
    aboutMenuItem = SwingUtil.createMenuItem( (MenuItemProperty) resource.
                                             getObject("m_about"), menu);
    aboutMenuItem.addActionListener(aboutAction);
  }

  private void createTree() {
    treeModel = new JZJTreeModel();
    tree = new JZJTree(treeModel, tableModel);
    treePane = new JScrollPane();
    treePane.getViewport().add(tree, null);
  }

  private void createSplitPane() {
    splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, treePane, tablePane);
  }

  /**
   * 創建顯示壓縮包內容的表格。
   */
  private void createTable() {
    tableModel = new JZJTableModel(resource.getStringArray("t_columnnames"));
    tableModel.setVisibleStatus(preference.getLong("table_status", 127));
    table = new JZJTable(tableModel);
    table.addHeaderListener();
    tablePane = new JScrollPane(table);
    table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
    table.setHeader();
    ListSelectionModel listSelectionModel = table.getSelectionModel();
    listSelectionModel.addListSelectionListener(new ListSelectionListener() {
      public void valueChanged(ListSelectionEvent e) {
        setSelectedStatus(table.getSelectedEntryCount(),
                          table.getSelectedTotalSize());
      }
    });
  }

  /**
   * 創建狀態欄。
   */
  private void createStatusbar() {
    totaInforlLabel = new JLabel();
    selectedInforLabel = new JLabel();
    memoryPanel = new MemoryWatchPanel(resource.getString("i_memory"));
    setStatus(0, 0, 0, 0);
    statusbar.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
    statusbar.setLayout(new GridLayout(1, 3));
    totaInforlLabel.setBorder(BorderFactory.createBevelBorder(BevelBorder.
        LOWERED));
    selectedInforLabel.setBorder(BorderFactory.createBevelBorder(BevelBorder.
        LOWERED));
    memoryPanel.setBorder(BorderFactory.createBevelBorder(BevelBorder.
        LOWERED));
    statusbar.add(selectedInforLabel);
    statusbar.add(totaInforlLabel);
    statusbar.add(memoryPanel);
  }

  /**
   * 創建工具欄的按鈕。
   * @param key 按鈕在資源中的主鍵
   * @return 根據主鍵及其信息創建的工具欄圖像按鈕
   */
  private JDynamicButton createToolbarButton(String key) {
    ButtonProperty buttonProperty;
    JDynamicButton button;
    buttonProperty = (ButtonProperty) resource.getObject(key);
    button = new JDynamicButton(buttonProperty.text,
                                new ImageIcon(MainFrame.class.
                                              getResource(buttonProperty.image)));
    button.setToolTipText(buttonProperty.tooltip);
    button.setVerticalTextPosition(AbstractButton.BOTTOM);
    button.setHorizontalTextPosition(AbstractButton.CENTER);
    toolbar.add(button);
    return button;
  }

  /**
   * 創建頂層主菜單。
   * @param key 主菜單在資源中的主鍵
   * @return 根據主鍵及其信息創建的主菜單
   */
  private JMenu createTopMenu(String key) {
    JMenu menu = SwingUtil.createMenu( (MenuProperty) resource.getObject(key), null);
    menubar.add(menu);
    return menu;
  }

  /**
   * 設置工具欄的那些在某些情況下不能使用的按鈕的狀態為可用。
   */
  private void enableThem() {
    closeButton.setEnabled(true);
    addButton.setEnabled(true);
    deleteButton.setEnabled(true);
    extractButton.setEnabled(true);
    viewButton.setEnabled(true);
    closeMenuItem.setEnabled(true);
    addMenuItem.setEnabled(true);
    deleteMenuItem.setEnabled(true);
    extractMenuItem.setEnabled(true);
    viewMenuItem.setEnabled(true);
  }

  /**
   * 設置工具欄的那些在某些情況下不能使用的按鈕的狀態為不可用。
   */
  private void disableThem() {
    closeButton.setEnabled(false);
    addButton.setEnabled(false);
    deleteButton.setEnabled(false);
    extractButton.setEnabled(false);
    viewButton.setEnabled(false);
    closeMenuItem.setEnabled(false);
    addMenuItem.setEnabled(false);
    deleteMenuItem.setEnabled(false);
    extractMenuItem.setEnabled(false);
    viewMenuItem.setEnabled(false);
  }

  /**
   * 清除表格中的所有信息。
   */
  private void removeAllRows() {
    tableModel.clear();
    treeModel.removeAll();
  }

  /**
   * 設置狀態欄的信息。
   * @param selectedCount 選中的文件數
   * @param selectedSize 選中的文件的大小的總和
   * @param totalCount 總共的文件數
   * @param totalSize 總共的文件的大小的總和
   */
  protected void setStatus(int selectedCount, long selectedSize, int totalCount,
                           long totalSize) {
    setSelectedStatus(selectedCount, selectedSize);
    setTotalStatus(totalCount, totalSize);
  }

  /**
   * 設置狀態欄的選中部分的信息。
   * @param selectedCount 選中的文件數
   * @param selectedSize 選中的文件的大小的總和
   */
  protected void setSelectedStatus(int selectedCount, long selectedSize) {
    selectedInfor[0] = String.valueOf(selectedCount);
    selectedInfor[1] = formatter.format(selectedSize);
    String selected = StringUtil.getReplaceString(resource.getString(
        "i_selected"), selectedInfor);
    selectedInforLabel.setText(selected);
  }

  /**
   * 設置狀態欄的總體信息。
   * @param totalCount 總共的文件數
   * @param totalSize 總共的文件大小
   */
  protected void setTotalStatus(int totalCount, long totalSize) {
    totalInfor[0] = String.valueOf(totalCount);
    totalInfor[1] = formatter.format(totalSize);
    String total = StringUtil.getReplaceString(resource.getString("i_total"),
                                               totalInfor);
    totaInforlLabel.setText(total);
  }

  /**
   * 添加文件。
   */
  private void addFiles() {
    JFileChooser chooser = new JFileChooser();
    chooser.setCurrentDirectory(currentDirectory);
    chooser.setMultiSelectionEnabled(true);
    int r = chooser.showOpenDialog(this);
    if (r == JFileChooser.APPROVE_OPTION) {
      File[] selectedFiles = chooser.getSelectedFiles();
      File path = chooser.getCurrentDirectory();
      currentDirectory = path;
      ArrayList addedFiles = new ArrayList();
      for (int i = 0; i < selectedFiles.length; i++) {
        String fileName = selectedFiles[i].getName();
        if (currentZipFile.isContainEntry(fileName)) {
          int selection = JOptionPane.showConfirmDialog(this,
              resource.getString("i_file") + " " + fileName + " " +
              resource.getString("i_exist") + resource.getString("i_overwrite"),

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区福利视频| 国产一区二区影院| 亚洲欧洲综合另类在线| 国产精品传媒入口麻豆| 日韩一区二区三区在线视频| 欧美性一二三区| 在线免费观看日本欧美| 欧美色欧美亚洲另类二区| 在线亚洲一区二区| 91精品国产综合久久精品性色| av午夜精品一区二区三区| 不卡的看片网站| 欧美性猛交xxxx黑人交| 99在线精品免费| 欧美曰成人黄网| 日韩一级片在线观看| 91香蕉视频mp4| 日韩视频中午一区| 国产精品久久久久久久久免费丝袜 | 国产精品天美传媒沈樵| 日韩和欧美的一区| 国产a精品视频| 538prom精品视频线放| 中文字幕国产一区| 国产精品系列在线播放| 欧美久久一区二区| 亚洲欧洲国产日本综合| 成人av免费观看| 国产欧美精品一区| 国产精品888| 中文字幕精品三区| 91一区一区三区| 亚洲欧洲成人av每日更新| av资源站一区| 一区二区不卡在线播放 | 一区二区三区四区在线| 成人一级黄色片| 国产精品传媒在线| 91福利区一区二区三区| 天天影视色香欲综合网老头| 91精品久久久久久久91蜜桃| 久久se这里有精品| 国产亚洲一区二区在线观看| 不卡的av电影| 亚洲成人av一区二区三区| 日韩午夜在线影院| 成人av影视在线观看| 亚洲一区二区三区小说| 日韩亚洲欧美高清| 成人亚洲一区二区一| 夜夜操天天操亚洲| 精品捆绑美女sm三区| 99精品视频在线免费观看| 亚洲v日本v欧美v久久精品| 国产三级久久久| 欧美精品久久一区| 91免费在线看| 国产精品亚洲第一区在线暖暖韩国 | 亚洲精品成人少妇| 国产日韩欧美一区二区三区乱码 | 中文字幕一区二区三| 8x福利精品第一导航| 91成人网在线| 99久久久久久| 蜜臀久久99精品久久久久宅男| 亚洲三级在线播放| 久久先锋影音av| 日韩三级在线观看| 欧美精品18+| 欧美这里有精品| 色婷婷综合久久| 色欧美日韩亚洲| 一本色道久久综合亚洲精品按摩| 国内成人精品2018免费看| 日本在线不卡一区| 免费人成在线不卡| 青娱乐精品视频在线| 蜜桃视频免费观看一区| 日产国产欧美视频一区精品| 免费在线观看一区二区三区| 丝袜脚交一区二区| 美女一区二区三区| 久久99热国产| aaa亚洲精品| 欧美色中文字幕| 欧美一区二区成人6969| 中文字幕精品综合| 亚洲精品高清在线| 看国产成人h片视频| 成人做爰69片免费看网站| 色综合久久88色综合天天免费| 欧美专区日韩专区| 精品国产a毛片| 日韩毛片视频在线看| 日韩成人精品在线观看| 91网站最新地址| 日韩一级二级三级| 亚洲私人影院在线观看| 免费观看久久久4p| 91视频一区二区| 久久精品日产第一区二区三区高清版| 欧美激情中文字幕一区二区| 一区二区在线观看视频| 国产老肥熟一区二区三区| 91久久一区二区| 国产精品丝袜在线| 久久99久久精品欧美| 欧美在线观看一二区| 亚洲国产精品自拍| 成人少妇影院yyyy| 日韩欧美一级在线播放| 一区二区三区91| av激情成人网| 日韩一区欧美小说| 国产精品一区二区在线观看不卡| 正在播放一区二区| 日韩av一区二| 91精品国产免费久久综合| 亚洲第一二三四区| 欧洲人成人精品| 亚洲免费毛片网站| 欧美午夜精品久久久| 一区二区三区欧美视频| 在线视频观看一区| 亚洲精品久久久蜜桃| 91小视频免费看| 亚洲精品免费视频| 欧美日韩一区小说| 精品一区二区三区在线观看国产| 久久综合网色—综合色88| 精品一区二区三区蜜桃| 国产人妖乱国产精品人妖| 国产a视频精品免费观看| 日韩一区在线播放| 在线免费观看一区| 蓝色福利精品导航| 中文一区在线播放| 欧美日韩国产精品成人| 韩国精品主播一区二区在线观看| 亚洲国产精品国自产拍av| 在线免费亚洲电影| 国产主播一区二区三区| 亚洲欧美自拍偷拍| 欧美区在线观看| www.亚洲精品| 久久99国产精品久久| 亚洲一区二区3| 国产亚洲精品免费| 9191国产精品| 欧美三级资源在线| 91原创在线视频| 色婷婷av一区| 国产盗摄一区二区三区| 天天色图综合网| 亚洲欧美电影一区二区| 久久久久久久久久久99999| 欧美视频你懂的| 日本精品视频一区二区| 欧美日韩情趣电影| www.色综合.com| 成人午夜碰碰视频| 国产·精品毛片| 国产黄色精品网站| 国产精品综合一区二区三区| 免费在线看一区| 久久99精品国产.久久久久久 | 国产成人av一区二区三区在线 | 国产精品素人视频| 国产精品系列在线| 国产精品美女久久久久久久久久久 | 精品国产伦一区二区三区观看体验| 欧美日韩国产综合草草| 欧美大片免费久久精品三p| 69p69国产精品| 欧美成人a在线| 国产精品全国免费观看高清 | 精品国产一区二区三区忘忧草 | 色婷婷香蕉在线一区二区| 欧美日韩成人高清| 精品国产乱码久久久久久闺蜜| 久久久夜色精品亚洲| 欧美国产日韩一二三区| 1024成人网| 欧美96一区二区免费视频| 国产精品一区三区| 欧美亚洲精品一区| 精品第一国产综合精品aⅴ| 国产欧美日韩不卡| 亚洲成人综合在线| 国产成人免费在线视频| 欧美色窝79yyyycom| 国产日韩欧美一区二区三区乱码| 亚洲国产日日夜夜| 成人v精品蜜桃久久一区| 91麻豆精品国产91久久久久久久久 | 亚洲国产精品t66y| 午夜精品免费在线| 一本一本久久a久久精品综合麻豆| 日韩一级免费一区| 亚洲午夜电影在线观看|