📄 log.java
字号:
package example.chat;
import java.util.Vector;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.StringItem;
import javax.microedition.midlet.MIDlet;
public class Log extends Form implements CommandListener {
static private Log instance;
static Vector logs = new Vector();
private MIDlet midlet;
private Displayable previous;
private Command back = new Command("Back", Command.BACK, 1);
private Command next = new Command("Next Page", Command.ITEM, 2);
private Command prev = new Command("Prev. Page", Command.ITEM, 2);
private int currentPage = 0;
static private int LINES_IN_PAGE = 5;
// private Command refresh = new Command("Refresh", Command.SCREEN, 1);
private Log() {
super("Log");
addCommand(back);
// addCommand(refresh);
addCommand(prev);
addCommand(next);
setCommandListener(this);
instance = this;
}
public static void setCurrent(MIDlet midlet) {
if (instance == null)
instance = new Log();
instance.midlet = midlet;
instance.previous = Display.getDisplay(midlet).getCurrent();
Display.getDisplay(midlet).setCurrent(instance);
instance.refresh();
}
public void commandAction(Command cmd, Displayable d) {
if (cmd == back) {
Display.getDisplay(midlet).setCurrent(previous);
} else if (cmd == prev) {
if (currentPage > 0)
currentPage--;
refresh();
} else if (cmd == next) {
if (currentPage < getPages())
currentPage++;
refresh();
}
}
private int getPages() {
int pages = logs.size() / LINES_IN_PAGE;
return pages;
}
private void refresh() {
synchronized (logs) {
if (size() == 0)
append(new StringItem("", ""));
if (!(get(0) instanceof StringItem))
return;
StringItem str = (StringItem) get(0);
StringBuffer sb = new StringBuffer();
for (int i = currentPage * LINES_IN_PAGE; i < (currentPage + 1)
* LINES_IN_PAGE
&& i < logs.size(); i++) {
sb.append(logs.elementAt(i).toString());
sb.append("\n");
}
sb.insert(0, "Page (" + currentPage + "/" + getPages() + "):\n");
str.setText(sb.toString());
}
}
static public void log(String string) {
logs.addElement(string);
System.out.println(string);
if (instance != null)
instance.refresh();
}
static public void log(String location, Exception e) {
log(location);
log(e.getMessage());
e.printStackTrace();
}
static public void clear() {
logs.removeAllElements();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -