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

📄 optiondialog.java

📁 模仿WINDOWS的WINZIP的一款软件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    p.add(label, null);
    cbbloglevel.setBounds(basex + 100, basey + 2 * height, 100, height);
    String[] levels = resource.getStringArray("loglevels");
    for (int i = 0; i < levels.length; i++) {
      cbbloglevel.addItem(levels[i]);
    }

    p.add(cbbloglevel, null);

    onCancel_Miscellaneous();
    return p;
  }

  /**
     /**
    * 设置选项设置
    */
   private void onOK() {
     viewpanel.confirmChange();
     toolbarpanel.confirmChange();
     onOK_Folders();
     onOK_Programlocations();
     onOK_Miscellaneous();

     //通知主窗口,设置已经改变
     OptionDialog.this.firePropertyChange(PP_NAME, true, false);

   }

  private void onCancel() {
    //viewpanel.resetChange();
    //toolbarpanel.resetChange();
    onCancel_Folders();
    onCancel_Programlocations();
    onCancel_Miscellaneous();
  }

  private void onCancel_Folders() {
    rbdefault.setSelected(preference.getBoolean("o_default_s", true));
    rblast_s.setSelected(preference.getBoolean("o_last_s", false));
    rbfolder_s.setSelected(preference.getBoolean("o_folder_s", false));
    tfstartup.setText(preference.get("o_startupfolder", ""));
//
    rbopen_e.setSelected(preference.getBoolean("o_open_e", true));
    rblast_e.setSelected(preference.getBoolean("o_last_e", false));
    rbfolder_e.setSelected(preference.getBoolean("o_folder_e", false));
    tfextract.setText(preference.get("o_extractfolder", ""));
//
    rbopen_a.setSelected(preference.getBoolean("o_open_a", true));
    rblast_a.setSelected(preference.getBoolean("o_last_a", false));
    rbfolder_a.setSelected(preference.getBoolean("o_folder_a", false));
    tfadd.setText(preference.get("o_addfolder", ""));

//
    tfwork.setText(preference.get("o_workingfolder", ""));

  }

  private void onCancel_Programlocations() {
    tfviewer.setText(preference.get("o_viewer", ""));
    tfscanner.setText(preference.get("o_scanner", ""));

  }

  private void onCancel_Miscellaneous() {
    cbautoopen.setSelected(preference.getBoolean("o_autoopen", true));
    int nfiles = preference.getInt("o_recentfiles", 4);
    sprecentfiles.setValue(new Integer(nfiles));
    String log = preference.get("o_loglevel", "DEBUG");
    for (int i = 0; i < loglevels.length; i++) {
      if (log.equals(loglevels[i])) {
        cbbloglevel.setSelectedIndex(i);
        break;
      }
    }
  }

  private void onOK_Folders() {
    preference.putBoolean("o_default_s", rbdefault.isSelected());
    preference.putBoolean("o_last_s", rblast_s.isSelected());
    preference.putBoolean("o_folder_s", rbfolder_s.isSelected());
    preference.put("o_startupfolder", tfstartup.getText());
//
    preference.putBoolean("o_open_e", rbopen_e.isSelected());
    preference.putBoolean("o_last_e", rblast_e.isSelected());
    preference.putBoolean("o_folder_e", rbfolder_e.isSelected());
    preference.put("o_extractfolder", tfextract.getText());
//
    preference.getBoolean("o_open_a", rbopen_a.isSelected());
    preference.getBoolean("o_last_a", rblast_a.isSelected());
    preference.getBoolean("o_folder_a", rbfolder_a.isSelected());
    preference.get("o_addfolder", tfadd.getText());
//
    preference.get("o_workingfolder", tfwork.getText());

  }

  private void onOK_Programlocations() {
    preference.put("o_viewer", tfviewer.getText());
    preference.put("o_scanner", tfscanner.getText());
  }

  private void onOK_Miscellaneous() {
    preference.getBoolean("o_autoopen", cbautoopen.isSelected());

    int nfiles = ( (Integer) sprecentfiles.getValue()).intValue();
    preference.putInt("o_recentfiles", nfiles);

    int nIndex = cbbloglevel.getSelectedIndex();
    if (nIndex >= loglevels.length) {
      nIndex = loglevels.length;
    }
    String log = loglevels[nIndex];
    preference.put("o_loglevel", log);

  }

  /** @todo 选择按钮 */
  class SelectButtonsAction
      implements ActionListener {
    public void actionPerformed(ActionEvent e) {

    }
  }

  /** @todo 选择目录的action */
  class BrowseAction
      implements ActionListener {
    JTextComponent cp;
    JRadioButton radio = null;

    BrowseAction(JTextComponent cp) {
      this.cp = cp;
    }

    public void actionPerformed(ActionEvent e) {

      String sfile;
      JFileChooser fc = new JFileChooser();
      int result = fc.showOpenDialog(OptionDialog.this);
      if (result == JFileChooser.APPROVE_OPTION) {
        File file = fc.getSelectedFile();
        cp.setText(file.getAbsolutePath());
        if (radio != null) {
          radio.setSelected(true);
        }
      }
    }

    public void setBuddy(JRadioButton radio) {
      this.radio = radio;
    }

  }

  class SelectPathAction
      implements ActionListener {
    JTextComponent cp = null;
    JRadioButton radio = null;
    SelectPathAction(JTextComponent cp, JRadioButton radio) {
      this.cp = cp;
      this.radio = radio;
    }

    public void actionPerformed(ActionEvent e) {
      String sfile;
      JFileChooser fc = new JFileChooser();
      fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
      int result = fc.showOpenDialog(OptionDialog.this);
      if (result == JFileChooser.APPROVE_OPTION) {
        File file = fc.getSelectedFile();
        cp.setText(file.getAbsolutePath());
        if (radio != null) {
          radio.setSelected(true);
        }
      }
    }

    public void setBuddy(JRadioButton radio) {
      this.radio = radio;
    }

  }

  /**
   * 确定动作
   */
  class OKAction
      implements ActionListener {
    public void actionPerformed(ActionEvent e) {
      OptionDialog.this.onOK();
      OptionDialog.this.setVisible(false);
    }
  }

  /**
   * 视图选项面板。
   */
  class ViewPanel
      extends JPanel {
    String[] columnHeaders = resource.getStringArray("t_columnnames");
    JCheckBox[] tableColumnBoxes = new JCheckBox[columnHeaders.length];
    boolean[] status = BooleanUtil.convertToArray(preference.getLong(
        "table_status", 127));
    JCheckBox fulllineSelected = new JCheckBox();
    //JCheckBox upperFilename=new JCheckBox();
    JCheckBox showGridline = new JCheckBox();
    JRadioButton doubleOpen = new JRadioButton();
    JRadioButton singleOpen = new JRadioButton();

    public ViewPanel() {
      setLayout(new GridLayout(1, 2));
      OptionPanel columnStatusPanel = new OptionPanel(resource.getString(
          "o_table_title"), columnHeaders.length + 2, 1);
      add(columnStatusPanel);
      for (int i = 0; i < columnHeaders.length; i++) {
        tableColumnBoxes[i] = new JCheckBox(columnHeaders[i], status[i]);
        columnStatusPanel.add(tableColumnBoxes[i]);
      }
      tableColumnBoxes[0].setEnabled(false);
      JPanel rightPanel = new JPanel();
      rightPanel.setLayout(new GridLayout(2, 1));
      OptionPanel generalPanel = new OptionPanel(resource.getString(
          "o_general_title"), 5, 1);
      OptionPanel mousePanel = new OptionPanel(resource.getString("o_ms_title"),
                                               5, 1);
      rightPanel.add(generalPanel);
      rightPanel.add(mousePanel);
      add(rightPanel);

      fulllineSelected.setText(resource.getString("o_vg_fullsel"));
      generalPanel.add(fulllineSelected);
      fulllineSelected.setSelected(preference.getBoolean("fulllineselect", true));
      //upperFilename.setText(resource.getString("o_vg_filename"));
      //generalPanel.add(upperFilename);
      //upperFilename.setSelected(preference.getBoolean("upperfilename", true));
      showGridline.setText(resource.getString("o_vg_grid"));
      generalPanel.add(showGridline);
      showGridline.setSelected(preference.getBoolean("showgridline", true));
      doubleOpen.setText(resource.getString("o_vm_doubleopen"));
      mousePanel.add(doubleOpen);
      doubleOpen.setSelected(preference.getBoolean("mouseopenmode", true));
      singleOpen.setText(resource.getString("o_vm_singleopen"));
      mousePanel.add(singleOpen);
      singleOpen.setSelected(preference.getBoolean("mouseopenmode", false));
      ButtonGroup mouseGroup = new ButtonGroup();
      mouseGroup.add(doubleOpen);
      mouseGroup.add(singleOpen);
    }

    /**
     * 确认所做的修改。
     * 提取设置的值并存储到注册表中。
     */
    public void confirmChange() {
      for (int i = 0; i < columnHeaders.length; i++) {
        status[i] = tableColumnBoxes[i].isSelected();
      }
      long finalStatus = BooleanUtil.convertToLong(status);
      preference.putLong("table_status", finalStatus);
      preference.putBoolean("fulllineselect", fulllineSelected.isSelected());
      //preference.putBoolean("upperfilename", upperFilename.isSelected());
      preference.putBoolean("showgridline", showGridline.isSelected());
      preference.putBoolean("mouseopenmode", doubleOpen.isSelected());
    }

    /**
     * 恢复用户的修改。
     */
    public void resetChange() {
      for (int i = 0; i < columnHeaders.length; i++) {
        tableColumnBoxes[i].setSelected(status[i]);
      }
      fulllineSelected.setSelected(preference.getBoolean("fulllineselect", true));
      //upperFilename.setSelected(preference.getBoolean("upperfilename", true));
      showGridline.setSelected(preference.getBoolean("showgridline", true));
      doubleOpen.setSelected(preference.getBoolean("mouseopenmode", true));
      singleOpen.setSelected(preference.getBoolean("mouseopenmode", false));
    }
  }

  /**
   * 工具条选项面板。
   */
  class ToolbarPanel
      extends JPanel {
    JCheckBox showText = new JCheckBox();
    JCheckBox showTooltipText = new JCheckBox();
    JButton customizeToolbar;

    public ToolbarPanel() {
      setLayout(new BorderLayout());
      OptionPanel toolbarPanel = new OptionPanel(resource.getString("o_t_title"),
                                                 8, 1);
      add(toolbarPanel, "Center");

      showText.setText(resource.getString("o_t_showtext"));
      toolbarPanel.add(showText);
      showText.setSelected(preference.getBoolean("o_showtext", true));
      showTooltipText.setText(resource.getString("o_t_showtip"));
      toolbarPanel.add(showTooltipText);
      showTooltipText.setSelected(preference.getBoolean("o_showtip", true));
      customizeToolbar = SwingUtil.createDynamicButton( (ButtonProperty)
          resource.getObject("o_b_selectbtn"));
      customizeToolbar.setEnabled(false);
      add(customizeToolbar, "South");
    }

    /**
     * 确认所做的修改。
     * 提取设置的值并存储到注册表中。
     */
    public void confirmChange() {
      preference.putBoolean("o_showtext", showText.isSelected());
      preference.putBoolean("o_showtip", showTooltipText.isSelected());
    }

    /**
     * 恢复用户的修改。
     */
    public void resetChange() {
      showText.setSelected(preference.getBoolean("o_showtext", true));
      showTooltipText.setSelected(preference.getBoolean("o_showtip", false));
    }

  }

  /**
   * 工具条选项面板。
   */
  class FolderPanel
      extends JPanel {
    JCheckBox showText = new JCheckBox();
    JCheckBox showTooltipText = new JCheckBox();

    public FolderPanel() {
      setLayout(new GridLayout(2, 2));
      OptionPanel toolbarPanel = new OptionPanel(resource.getString("o_t_title"),
                                                 5, 1);
      add(toolbarPanel);

      showText.setText(resource.getString("o_t_showtext"));
      toolbarPanel.add(showText);
      showText.setSelected(preference.getBoolean("o_showtext", true));
      showTooltipText.setText(resource.getString("o_t_showtip"));
      toolbarPanel.add(showTooltipText);
      showTooltipText.setSelected(preference.getBoolean("o_showtip", true));
    }

    /**
     * 确认所做的修改。
     * 提取设置的值并存储到注册表中。
     */
    public void confirmChange() {
      preference.putBoolean("o_showtext", showText.isSelected());
      preference.putBoolean("o_showtip", showTooltipText.isSelected());
    }

    /**
     * 恢复用户的修改。
     */
    public void resetChange() {
      showText.setSelected(preference.getBoolean("o_showtext", true));
      showTooltipText.setSelected(preference.getBoolean("o_showtip", false));
    }

  }

}

⌨️ 快捷键说明

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