♣
如何将下面这个客户端程序在JBuilderX中运行???
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class webclient extends closeableframe
implements runnable, interruptible, actionlistener {
public static void main(string[] args) {
new webclient("web client");
}
private labeledtextfield hostfield, portfield,
requestlinefield;
private textarea requestheadersarea, resultarea;
private string host, requestline;
private int port;
private string[] requestheaders = new string[30];
private button submitbutton, interruptbutton;
private boolean isinterrupted = false;
public webclient(string title) {
super(title);
setbackground(color.lightgray);
setlayout(new borderlayout(5, 30));
int fontsize = 14;
font labelfont =
new font("serif", font.bold, fontsize);
font headingfont =
new font("sansserif", font.bold, fontsize+4);
font textfont =
new font("monospaced", font.bold, fontsize-2);
panel inputpanel = new panel();
inputpanel.setlayout(new borderlayout());
panel labelpanel = new panel();
labelpanel.setlayout(new gridlayout(4,1));
hostfield = new labeledtextfield("host:", labelfont,"127.0.0.1",
30, textfont);
portfield = new labeledtextfield("port:", labelfont,
"8080", 5, textfont);
// use http 1.0 for compatibility with the most servers.
// if you switch this to 1.1, you *must* supply a
// host: request header.
requestlinefield =
new labeledtextfield("request line:", labelfont,
"get / http/1.0", 50, textfont);
labelpanel.add(hostfield);
labelpanel.add(portfield);
labelpanel.add(requestlinefield);
label requestheaderslabel =
new label("request headers:");
requestheaderslabel.setfont(labelfont);
labelpanel.add(requestheaderslabel);
inputpanel.add(labelpanel, borderlayout.north);
requestheadersarea = new textarea(5, 80);
requestheadersarea.setfont(textfont);
inputpanel.add(requestheadersarea, borderlayout.center);
panel buttonpanel = new panel();
submitbutton = new button("submit request");
submitbutton.addactionlistener(this);
submitbutton.setfont(labelfont);
buttonpanel.add(submitbutton);
inputpanel.add(buttonpanel, borderlayout.south);
add(inputpanel, borderlayout.north);
panel resultpanel = new panel();
resultpanel.setlayout(new borderlayout());
label resultlabel =
new label("results", label.center);
resultlabel.setfont(headingfont);
resultpanel.add(resultlabel, borderlayout.north);
resultarea = new textarea();
resultarea.setfont(textfont);
resultpanel.add(resultarea, borderlayout.center);
panel interruptpanel = new panel();
interruptbutton = new button("interrupt download");
interruptbutton.addactionlistener(this);
interruptbutton.setfont(labelfont);
interruptpanel.add(interruptbutton);
resultpanel.add(interruptpanel, borderlayout.south);
add(resultpanel, borderlayout.center);
setsize(600, 700);
setvisible(true);
}
public void actionperformed(actionevent event) {
if (event.getsource() == submitbutton) {
thread downloader = new thread(this);
downloader.start();
} else if (event.getsource() == interruptbutton) {
isinterrupted = true;
}
}
public void run() {
isinterrupted = false;
if (haslegalargs())
new httpclient(host, port, requestline,
requestheaders, resultarea, this);
}
public boolean isinterrupted() {
return(isinterrupted);
}
private boolean haslegalargs() {
host = hostfield.gettextfield().gettext();
if (host.length() == 0) {
report("missing hostname");
return(false);
}
string portstring =
portfield.gettextfield().gettext();
if (portstring.length() == 0) {
report("missing port number");
return(false);
}
try {
port = integer.parseint(portstring);
} catch(numberformatexception nfe) {
report("illegal port number: " + portstring);
return(false);
}
requestline =
requestlinefield.gettextfield().gettext();
if (requestline.length() == 0) {
report("missing request line");
return(false);
}
getrequestheaders();
return(true);
}
private void report(string s) {
resultarea.settext(s);
}
private void getrequestheaders() {
for(int i=0; i<requestheaders.length; i++)
requestheaders[i] = null;
int headernum = 0;
string header =
requestheadersarea.gettext();
stringtokenizer tok =
new stringtokenizer(header, "\r\n");
while (tok.hasmoretokens())
requestheaders[headernum++] = tok.nexttoken();
}
}
请说得详细一点,我对jbuilder不是很熟悉. ^_^
(如果按照普通的gui程序编译的时候会抛出一大堆错误.如下:
"webclient.java": cannot resolve symbol: class closeableframe in class webclient at line 5, column 32
"webclient.java": cannot resolve symbol: class interruptible in class webclient at line 6, column 26
"webclient.java": interface expected here at line 6, column 26
"webclient.java": cannot resolve symbol: class labeledtextfield in class webclient at line 11, column 11
"webclient.java": cannot resolve symbol: method setbackground (java.awt.color)in class webclient at line 22, column 5
"webclient.java": cannot resolve symbol: method setlayout (java.awt.borderlayout)in class webclient at line 23, column 5
"webclient.java": cannot resolve symbol: class labeledtextfield in class webclient at line 35, column 21
"webclient.java": cannot resolve symbol: class labeledtextfield in class webclient at line 37, column 21
"webclient.java": cannot resolve symbol: class labeledtextfield in class webclient at line 43, column 11
"webclient.java": cannot resolve symbol: method add (java.awt.panel,java.lang.string)in class webclient at line 62, column 5
"webclient.java": cannot resolve symbol: method add (java.awt.panel,java.lang.string)in class webclient at line 78, column 5
"webclient.java": cannot resolve symbol: method setsize (int,int)in class webclient at line 79, column 5
"webclient.java": cannot resolve symbol: method setvisible (boolean)in class webclient at line 80, column 5
"webclient.java": reference to thread is ambiguous; both method thread(java.lang.runnable) in java.lang.thread and method thread(java.lang.string) in java.lang.thread match at line 85, column 27
"webclient.java": cannot resolve symbol: class httpclient in class webclient at line 95, column 11
· 网友精彩回答:
你在jb中new project -> new class时向导会帮你加上package的,如果没包名可能绘出现找不到用户定义的类的情况.
socketutil这个类找不到
.- 更多问题:
- · 请问:with nocheck 在这里是什么意思啊?????????????????
- · 防毒软件猛于虎!----半夜来骂来了,顺便求解决方案
- · 我对微软出的那套技术内幕非常不欣赏,反而喜欢wrox的书
- · 防毒软件猛于虎!----半夜来骂来了,顺便求解决方案
- · 50分
- · 我想买个移动硬盘,不知道哪款好,请教大家二个问题! 谢谢!
- · 100分求 :如何检测一个URL是否可用??
- · 虚拟路径的表示问题?
- · TAudioMixer v1.15 这个东西在XP下回出错?
- · 用JavaMail发邮件却在目标邮箱找不到
- · Access2003打不开数据表提示出现未知错误
- · 如何将excel表格做成的数据表转化为数据库表?
- · 类似于这种网站是怎么做出来的,有没有源程序下载。能不能告诉我,谢谢!!!
- · 为什么protected 定义后的有些内容不能在页面中显示出来
- · 找控件!
- · 如何做好一名软件开发经理人员 之一
- · 设置篇
- · 服务器专栏 | 服务器
- · foxpro应用
- · ip指南
- · 验证码技术应用 | 验证码
- · mfc编程
- · oracle ebs
- · jsp oracle
- · firefox浏览器
- · sql注入
- · sql delete
- · sql join
- · sql server 2003
- · asp access
- · php access
- · asp.net
- · photoshop8.0教程的下载地址
- · 什么是互联网
- · 台州互联网
- · 《中国互联网行业自律公约》
- · 互联网数据库
- · CNN评出25个典型的下一代互联网公司
- · 互联网法律法规
- · 开源博客
- · 火狐firefox

