jndesktopmanager.java
来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 201 行
JAVA
201 行
/*
* $Id: JNDesktopManager.java,v 1.13 2004/02/26 21:17:16 lsantha Exp $
*/
package org.jnode.wt.desktop;
import org.jnode.wt.events.JNPaintEvent;
import org.jnode.wt.events.JNDesktopManagerListener;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
/**
* @author vali
*/
public class JNDesktopManager {
private static final JNDesktopManager instance = new JNDesktopManager();
private Graphics2D graphics = null;
private final List desktopslist = new LinkedList();
private int curIndex = 0;
private final JNodeEventQueue eventqueue;
public Container testContainer = null;
private final List listeners = new LinkedList();
private boolean hardwareCursor = false;
private Dimension screenSize;
/**
* Initialize this instance.
*/
private JNDesktopManager() {
eventqueue = new JNodeEventQueue();
}
/**
* Gets the global desktop manager.
*
* @return The global desktop manager.
*/
public static JNDesktopManager getDesktopManager() {
return instance;
}
/**
* Post an event to the global event queue.
*
* @param event
*/
public final void postEvent(JNodeEvent event) {
eventqueue.postEvent(event);
}
public synchronized void removeDesktop(JNDesktop desktop) {
desktopslist.remove(desktop);
fireDesktopClosedEvent(desktop);
}
/**
* Create and add a new desktop.
*
* @return The created desktop.
*/
public synchronized JNDesktop addDesktop() {
JNDesktop desktop = new JNDesktop();
desktop.setSize(screenSize);
desktopslist.add(desktop);
fireDesktopCreatedEvent(desktop);
return desktop;
}
/**
* Gets the current desktop.
*
* @return JNDesktop
*/
public final JNDesktop getCurrentDesktop() {
if (desktopslist.size() > curIndex) {
return (JNDesktop) desktopslist.get(curIndex);
} else {
return null;
}
}
/**
* Gets the number of desktops.
*
* @return int
*/
public final int getDesktopCount() {
return desktopslist.size();
}
/**
* Get the desktop graphics.
*/
public final Graphics2D getGraphics() {
if (graphics == null && testContainer != null) {
return (Graphics2D) testContainer.getGraphics();
}
return graphics;
}
/**
* @param g
* The graphics to set.
*/
public final void setGraphics(Graphics2D g) {
this.graphics = g;
}
/**
* Repaint the current desktop.
*/
public final void repaint() {
final JNDesktop desktop = getCurrentDesktop();
if (desktop != null) {
postEvent(new JNPaintEvent(desktop, JNPaintEvent.UPDATE));
}
}
/**
* Add a listener
*
* @param listener
*/
public final synchronized void addDesktopManagerListener(JNDesktopManagerListener listener) {
listeners.add(listener);
}
/**
* Remove a listener
*
* @param listener
*/
public final synchronized void removeDesktopManagerListener(JNDesktopManagerListener listener) {
listeners.remove(listener);
}
/**
* Notify all listeners of a desktop created event.
*
* @param desktop
*/
protected final void fireDesktopCreatedEvent(JNDesktop desktop) {
// Create a copy of the list, to allow modifications of the list by listeners.
final ArrayList copyList = new ArrayList(listeners);
for (Iterator i = copyList.iterator(); i.hasNext();) {
final JNDesktopManagerListener l = (JNDesktopManagerListener) i.next();
l.desktopCreated(desktop);
}
}
/**
* Notify all listeners of a desktop closed event.
*
* @param desktop
*/
protected final void fireDesktopClosedEvent(JNDesktop desktop) {
// Create a copy of the list, to allow modifications of the list by listeners.
final ArrayList copyList = new ArrayList(listeners);
for (Iterator i = copyList.iterator(); i.hasNext();) {
final JNDesktopManagerListener l = (JNDesktopManagerListener) i.next();
l.desktopClosed(desktop);
}
}
/**
* @return Returns the hardwareCursor.
*/
public final boolean isHardwareCursor() {
return this.hardwareCursor;
}
/**
* @param hardwareCursor
* The hardwareCursor to set.
*/
public final void setHardwareCursor(boolean hardwareCursor) {
this.hardwareCursor = hardwareCursor;
}
/**
* @return Returns the screenSize.
*/
public final Dimension getScreenSize() {
return this.screenSize;
}
/**
* @param screenSize
* The screenSize to set.
*/
public final void setScreenSize(Dimension screenSize) {
this.screenSize = screenSize;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?