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

📄 uihandler.java

📁 用java实现的红外线通讯源码
💻 JAVA
字号:
package jmirc;import java.util.*;import javax.microedition.lcdui.*;public class UIHandler {	private Display display;	private Window console;	private boolean header;	private boolean timestamp;	private boolean winlock;	private int buflines;	private Hashtable channels, privates;	private Vector windows; // excludes console	private int currentwin;	private String hilight;	public String nick;	public boolean keylock;	public UIHandler(Database db, Display disp) {		nick = db.nick;		keylock = false;		header = db.header;		timestamp = db.timestamp;		hilight = db.hilight;		buflines = db.buflines;		display = disp;		winlock = false;		channels = new Hashtable();		privates = new Hashtable();		windows = new Vector();		currentwin = 0;		console = new Window(this, "Status", Window.TYPE_CONSOLE, hilight, header, timestamp, buflines);		addWindow(console);	}	public Window getConsole() {		return console;	}	public Window getChannel(String channel) {		Window win;		channel = channel.trim();		win = (Window) channels.get(channel.toUpperCase());		if (win == null) {			win = new Window(this, channel, Window.TYPE_CHANNEL, hilight, header, timestamp, buflines);			channels.put(channel.toUpperCase(), win);			addWindow(win);		}		return win;	}	public Window getPrivate(String priv) {		Window win;		if (priv.charAt(0) == '@' || priv.charAt(0) == '+')			priv = priv.substring(1).trim();		else priv = priv.trim();		win = (Window) privates.get(priv.toUpperCase());		if (win == null) {			win = new Window(this, priv, Window.TYPE_PRIVATE, hilight, header, timestamp, buflines);			privates.put(priv.toUpperCase(), win);			addWindow(win);			if (keylock) playAlarm(true);		}		// private message coming, we play the alarm		else if (keylock) playAlarm(false);		return win;	}	public synchronized void addWindow(Window win) {		windows.addElement(win);		displayWindow(-1);	}	public synchronized int[] getIndicators() {		int[] ret = new int[windows.size()];		for (int i=0; i<windows.size(); i++) {			if (i == currentwin) ret[i] = Window.STATE_SELECTED;			else ret[i] = ((Window) windows.elementAt(i)).getState();		}		return ret;	}	public synchronized void setHeader(boolean visible) {		header = visible;		for (int i=0; i<windows.size(); i++)			((Window) windows.elementAt(i)).setHeaderVisible(header);	}	public void displayNextWindow() {		displayWindow(currentwin+1);	}	public void displayPreviousWindow() {		displayWindow(currentwin-1);	}	public void displayWindow(int num) {		Window win;		if (winlock) return; // no window changing on winlock		if (num >= windows.size()) num = 0;		else if (num < 0) num = windows.size()-1;		if (num != currentwin) {			((Window) windows.elementAt(currentwin)).setState(Window.STATE_NONE);			setDisplay((Window) windows.elementAt(num));			currentwin = num;		}	}	public synchronized void deleteWindow(Window win) {		if (win.getType() == Window.TYPE_PRIVATE)			privates.remove(win.getName().toUpperCase());		if (win.getType() == Window.TYPE_CHANNEL)			channels.remove(win.getName().toUpperCase());		windows.removeElement(win);		currentwin--;		setDisplay((Window) windows.elementAt(currentwin));	}	public void setDisplay(Displayable disp) {		display.setCurrent(disp);	}	public Hashtable getChannels() {		return channels;	}	public void clearChanPriv() {		for (int i=1; i<windows.size(); i++) {			((Window) windows.elementAt(i)).clear();		}		windows.removeAllElements();		channels.clear();		privates.clear();		console.enterExitMode();		currentwin = 0;		addWindow(console);		setDisplay(console);		console.repaint();	}	public void cleanup() {		if (windows.size() > 1)			clearChanPriv();		console.clear();		windows.removeAllElements();		setDisplay(jmIrc.mainform);	}	public void repaint() {		((Window) windows.elementAt(currentwin)).repaint();	}	public void setWinlock(boolean lock) {		winlock = lock;	}	public boolean playAlarm(boolean louder) {		if (louder)			return AlertType.ALARM.playSound(display);		else			return AlertType.INFO.playSound(display);	}}

⌨️ 快捷键说明

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