作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用进度 Pane 从此处返回响应,以便我可以显示加载对话框。代码运行良好,但有时我无法从此处获得响应。
代码片段是:
public class Connection
{
StringBuffer messageBuffer = new StringBuffer();
String response;
public String connect(String str, String type)
{
try
{
ConnectionRequest cr = new ConnectionRequest()
{
protected void readResponse(InputStream input)
{
try
{
// just read from the response input stream
System.out.println("input length: "+input.available());
//byte[] b = new byte[input.available()];
//input.read(b, 0, input.available());
byte[] b ;
ByteArrayOutputStream bStrm = new ByteArrayOutputStream();
int ch;
while ((ch = input.read()) != -1)
bStrm.write(ch);
b = bStrm.toByteArray();
System.err.println(b.length);
response = new String(b);
System.err.println(new String(b));
}
catch (IOException ex)
{
System.err.println("IOException :"+ex.getMessage());
}
}
protected void postResponse()
{
}
};
cr.setTimeout(3600);
cr.setUrl(str.trim());
Progress progress = new Progress("Loading...", cr,true);
progress.setAutoShow(true);
progress.setDisposeOnCompletion(true);
if (type.equals("POST"))
{
cr.setPost(true);
} else
{
cr.setPost(false);
}
NetworkManager nm = NetworkManager.getInstance();
nm.setTimeout(60000);
nm.start();
nm.addToQueueAndWait(cr);
return response;
}
catch (Exception ae)
{
System.out.println(ae.getMessage());
return response;
}
finally
{
return response;
}
}
}
public class Progress extends Dialog implements ActionListener
{
private ConnectionRequest request;
private boolean disposeOnCompletion;
private boolean autoShow;
public Progress(String title, ConnectionRequest request) {
this(title, request, false);
}
public Progress(String title, ConnectionRequest request, boolean showPercentage) {
super(title);
try {
this.request = request;
SliderBridge b = new SliderBridge(request);
setLayout(new BoxLayout(BoxLayout.Y_AXIS));
addComponent(b);
setDisposeWhenPointerOutOfBounds(false);
setAutoDispose(false);
NetworkManager.getInstance().addProgressListener(this);
} catch (Exception ex) {
ex.printStackTrace();
}
}
protected void actionCommand(Command cmd) {
if(Display.getInstance().isTouchScreenDevice() || getSoftButtonCount() < 2) {
for(int iter = 0 ; iter < getComponentCount() ; iter++) {
Component c = getComponentAt(iter);
if(c instanceof Button) {
c.setEnabled(false);
}
}
} else {
removeAllCommands();
}
request.kill();
}
public boolean isDisposeOnCompletion() {
return disposeOnCompletion;
}
public void setDisposeOnCompletion(boolean disposeOnCompletion) {
this.disposeOnCompletion = disposeOnCompletion;
}
public void actionPerformed(ActionEvent evt) {
NetworkEvent ev = (NetworkEvent)evt;
if(ev.getConnectionRequest() == request) {
if(disposeOnCompletion && ev.getProgressType() == NetworkEvent.PROGRESS_TYPE_COMPLETED) {
dispose();
return;
}
if(autoShow && Display.getInstance().getCurrent() != this) {
show();
}
}
}
public boolean isAutoShow() {
return autoShow;
}
public void setAutoShow(boolean autoShow) {
this.autoShow = autoShow;
}
}
最佳答案
我认为您应该在代码的某处使用 setProgress(value)
方法。并且您必须使用 Thread
来完成它。
在该博客中,他们解释了如何使用线程将值设置为进度条。
关于java - 我想在 j2me 中从这里返回响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17445183/
使用登录后,我想吐出用户名。 但是,当我尝试单击登录按钮时, 它给了我力量。 我看着logcat,但是什么也没显示。 这种编码是在说。 它将根据我在登录屏幕中输入的名称来烘烤用户名。 不会有任何密码。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
我是一名优秀的程序员,十分优秀!