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

📄 multiwindow.java

📁 ErGo是一个很早的Java通用围棋服务器(IGS/NNGS)客户端程序。有全部源码和文档
💻 JAVA
字号:
package ergo.ui;

// $Id: MultiWindow.java,v 1.3 1999/08/13 01:20:09 sigue Exp $

/*
 *  Copyright (C) 1999  Carl L. Gay and Antranig M. Basman.
 *  See the file copyright.txt, distributed with this software,
 *  for further information.
 */

import java.util.Vector;
import java.awt.*;
import java.awt.event.*;

class MultiWindow extends Frame implements WindowsMenuCommand {
  MultiWindowBackable mwb;
  public MultiBox mb;
  private MenuBar menuBar = new MenuBar();
  
  // File menu
  private Menu viewMenu = new Menu("View");
  private MenuItem refreshItem = new MenuItem("Refresh");
  private MenuItem refreshaItem = new MenuItem("Refresh All");
  private Menu sortMenu = new Menu("Sort");
  private Vector sortOptions = new Vector();
  
  public MenuBar menuBar() { return menuBar; }
  public Menu getSortMenu() { return sortMenu; }
  
  private void changeMenuState(CheckboxMenuItem cbmi) {
    for (int i = 0; i < sortOptions.size(); ++i) {
      CheckboxMenuItem cbmii = (CheckboxMenuItem)sortOptions.elementAt(i);
      if (cbmi != cbmii)
	cbmii.setState(false);
      if (cbmi == cbmii) {
	cbmi.setState(true);
	mwb.setSort(i);
      }
    }
  }
  
  MultiWindow(MultiWindowBackable mwb1, MultiBox mb1, int initSortMethod) {
    mb = mb1;
    mwb = mwb1;
    //    menuBar.add(sortMenu);
    //    setMenuBar(menuBar);
    String[] sortMethods = mwb.sortMethods();
    for (int i = 0; i < sortMethods.length; ++i) {
      CheckboxMenuItem ncbmi = new CheckboxMenuItem(sortMethods[i]);
      sortOptions.addElement(ncbmi);
      sortMenu.add(ncbmi);
    }
    ((CheckboxMenuItem)sortOptions.elementAt(initSortMethod)).setState(true);
    
    setTitle(mwb.windowName());
    setLayout(new BorderLayout());
    add("Center", mb);
    
    addWindowListener(new WindowAdapter () {
      public void windowClosing (WindowEvent e) {
	destroyed();
      }});
    
    pack();
    validate();
    setVisible(false);
  }
  
  public boolean action (Event e, Object arg) {
    if (e.target instanceof CheckboxMenuItem) 
      changeMenuState((CheckboxMenuItem)e.target);
    else {
      return mwb.actionOn(e, arg);
    }
    return true;
  }
  
  public void destroyed () {
    setVisible(false);
    mwb.winDestroyed();
  }
  
  public boolean handleEvent (Event event) {
    if (event.id == Event.WINDOW_DESTROY) {
      destroyed();
      return true;
    }
    return super.handleEvent(event);
  }
  
  /// Implement the WindowsMenuCommand interface.
  
  public String menuString () { return mwb.menuString(); }
  public MenuShortcut menuShortcut () { return mwb.menuShortcut(); }
  public int menuPriority () { return mwb.menuPriority(); }
  public void menuSelect (Frame f) { mwb.menuSelect(f); }
  public Class appliesTo () { return mwb.appliesTo(); }
}

⌨️ 快捷键说明

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