📄 multiwindow.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 + -