当前位置: 代码迷 >> J2SE >> 用JAVA模拟兑现一个简单的web nevigator
  详细解决方案

用JAVA模拟兑现一个简单的web nevigator

热度:116   发布时间:2016-04-24 13:21:28.0
用JAVA模拟实现一个简单的web nevigator
要求实现基本的visit,forward,backward,and quit 操作

------解决方案--------------------
使用 javax.swing.JEditorPane 做浏览器的主窗口。
------解决方案--------------------
或者使用swt的Brower
------解决方案--------------------
要考虑的是html的解析问题
1.正则
2.html parser
------解决方案--------------------
import java.io.*;
public class demo {
public static void main(String[] args)
throws IOException {
BufferedReader stdin = new BufferedReader(
new InputStreamReader(System.in));
String line = "";
String current = "http://www.mainpage.com/";
StringTokenizer st;
String command;
StackL fs = new StackL();// forward stack
StackL bs = new StackL();// backward stack
boolean ignored = false;
while (true) {
ignored = false;
line = stdin.readLine();
st = new StringTokenizer(line);
command = (String) (st.nextToken());
if(command.equals("QUIT")){
break;
}
else if (command.equals("VISIT")) {
bs.push(current);
current = (String) (st.nextToken());
fs.emptify();
} else if (command.equals("FORWARD")) {
if (fs.isempty()) {
ignored = true;
} else {
bs.push(current);
current = (String) fs.pop();
}
} else if (command.equals("BACK")) {
if (bs.isempty()) {
ignored = true;
} else {
fs.push(current);
current = (String) bs.pop();
}

if(ignored)System.out.println("Ignored");
else System.out.println(current);

}
// String url = (String) (st.nextToken());
}
}

class StackL {
private LinkedList list = new LinkedList();

public void push(Object v) {
list.addFirst(v);
}

public Object top() {
return list.getFirst();
}

public Object pop() {
return list.removeFirst();
}

public void emptify() {
list.clear();
}

public boolean isempty() {
return list.isEmpty();
}
}

以上是我写的实现基本操作,主要用文本方式在控制台模拟几个基本操作。不知道合不合适
  相关解决方案