帮忙给java代码写个界面,带一个按钮一个进度条。(代码已有了)如果解决了,可以再开个问题给你总给300分

packagesterning;importjava.io.BufferedOutputStream;importjava.io.DataInputStream;impo... package sterning;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileOutputStream;

public class ClientTest {
private ClientSocket cs = null;

private String ip = "localhost";// 设置成服务器IP

private int port = 8821;

private String sendMessage = "Windwos";

public ClientTest() {
try {
if (createConnection()) {
sendMessage();
getMessage();
}

} catch (Exception ex) {
ex.printStackTrace();
}
}

private boolean createConnection() {
cs = new ClientSocket(ip, port);
try {
cs.CreateConnection();
System.out.print("连接服务器成功!" + "\n");
return true;
} catch (Exception e) {
System.out.print("连接服务器失败!" + "\n");
return false;
}

}

private void sendMessage() {
if (cs == null)
return;
try {
cs.sendMessage(sendMessage);
} catch (Exception e) {
System.out.print("发送消息失败!" + "\n");
}
}

private void getMessage() {
if (cs == null)
return;
DataInputStream inputStream = null;
try {
inputStream = cs.getMessageStream();
} catch (Exception e) {
System.out.print("接收消息缓存错误\n");
return;
}

try {
//本地保存路径,文件名会自动从服务器端继承而来。
String savePath = "E:\\";
int bufferSize = 8192;
byte[] buf = new byte[bufferSize];
int passedlen = 0;
long len=0;

savePath += inputStream.readUTF();
DataOutputStream fileOut = new DataOutputStream(new BufferedOutputStream(new BufferedOutputStream(new FileOutputStream(savePath))));
len = inputStream.readLong();

System.out.println("文件的长度为:" + len + "\n");
System.out.println("开始接收文件!" + "\n");

while (true) {
int read = 0;
if (inputStream != null) {
read = inputStream.read(buf);
}
passedlen += read;
if (read == -1) {
break;
}
//下面进度条本为图形界面的prograssBar做的,这里如果是打文件,可能会重复打印出一些相同的百分比
System.out.println("文件接收了" + (passedlen * 100/ len) + "%\n");
fileOut.write(buf, 0, read);
}
System.out.println("接收完成,文件存为" + savePath + "\n");

fileOut.close();
} catch (Exception e) {
System.out.println("接收消息错误" + "\n");
return;
}
}

public static void main(String arg[]) {
new ClientTest();
}
}
按钮是点击后开始new ClientTest();
把//下面进度条本为图形界面的prograssBar做的,这里如果是打文件,可能会重复打印出一些相同的百分比下面部分改成进度条。
主要是我没软件做界面,一句一句做很蛋疼的。
展开
 我来答
Kooosy
2011-10-17 · 超过22用户采纳过TA的回答
知道答主
回答量:93
采纳率:0%
帮助的人:58万
展开全部

很抱歉  楼上的 我做了个  视频 音频 播发的 java程序 截个图给你看看

更多追问追答
追问
进度条是要怎么动的?我把界面设了一个类,然后不知道要如何用另一个类里的变量即下载比例让进度条动起来。给我说个思路,说好了给你最佳。
追答
界面类中提供一个方法 更新JProgressBar的value  repaint界面 仅此而已
最近项目比较忙不然可以给你写个例子
上面那截图 还是上学的时候弄着玩的 给女朋友做的 哈哈
百度网友6a5ad2f
2011-10-17 · 超过10用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:30.9万
展开全部
做图形界面还是去用C#去做把 语法跟java非常相似
那里面托控件多爽。。
追问
关键是socket在C#上跟android的java无法实现完美对接,只能传输一个变量。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式