Lwuit TabbedPane无更新
来源:互联网 发布:性价比高的护肤品知乎 编辑:程序博客网 时间:2024/06/13 00:17
写了段代码,要显示文件目录及目录下的文件。要求使用TabbedPane(因为多个Pane显示不同的内容)。现我在实现一个显示本地文件目录的代码如下,可以显示根目录了,但是在点击root/后,Form突然就清空了,没有TabbedPane了。为什么???
谢谢....
谢谢....
package lab.sodino.jsr75;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Vector;
import javax.microedition.io.Connector;
import javax.microedition.io.file.FileConnection;
import javax.microedition.io.file.FileSystemRegistry;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import com.sun.lwuit.Display;
import com.sun.lwuit.Form;
import com.sun.lwuit.List;
import com.sun.lwuit.TabbedPane;
import com.sun.lwuit.events.ActionEvent;
import com.sun.lwuit.events.ActionListener;
import com.sun.lwuit.layouts.BorderLayout;
import com.sun.lwuit.list.DefaultListModel;
import com.sun.lwuit.plaf.UIManager;
import com.sun.lwuit.util.Resources;
public class Jsr75Test04 extends MIDlet {
private Form f;
private List directoryList;
private TabbedPane tpBrowser;
private String currDirName = "";
public final static String UPStr = "UP..";
public Jsr75Test04() {
Display.init(this);
try {
Resources r = Resources.open("/javaTheme.res");
UIManager.getInstance().setThemeProps(r.getTheme("javaTheme"));
} catch (IOException e) {
e.printStackTrace();
}
f = new Form("JSR75Form");
tpBrowser = new TabbedPane();
f.setLayout(new BorderLayout());
f.addComponent(BorderLayout.CENTER, tpBrowser);
directoryList = createDirectoryList();
tpBrowser.addTab("ViewEntry", directoryList);
}
protected void destroyApp(boolean unconditional) throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
protected void startApp() throws MIDletStateChangeException {
// TODO Auto-generated method stub
f.show();
}
private Vector getTraverseEntryItem(String currDirName) {
Enumeration e = null;
Vector vecItems = new Vector();
if (currDirName.equals("")) {
e = FileSystemRegistry.listRoots();
} else {
try {
FileConnection currDir = (FileConnection) Connector.open("file:///" + currDirName);
e = currDir.list();
currDir.close();
} catch (IOException e1) {
System.out.println("go to catch file:///" + currDirName);
e1.printStackTrace();
}
}
//Folders first and then files, alphabetically arranged
int folderCount = 0;
while (e.hasMoreElements()) {
String fileName = (String) (e.nextElement());
if (fileName.endsWith("/")) {
System.out.println("folder added " + fileName + " folderCount = " + folderCount);
vecItems.insertElementAt(fileName, folderCount);
folderCount++;
} else {
System.out.println("file added " + fileName);
vecItems.addElement(fileName);
}
}
//if view a sub-directory folder, added the UPStr at the head.
if (currDirName.equals("") == false) {
vecItems.insertElementAt(UPStr, 0);
}
return vecItems;
}
private List createDirectoryList() {
DefaultListModel model = new DefaultListModel(getTraverseEntryItem(currDirName));
final List list = new List(model);
list.setFixedSelection(List.FIXED_NONE_CYCLIC);
list.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
updateCurrDirName(list.getSelectedItem().toString());
System.out.println("sodino : " + list.getSelectedItem().toString());
}
});
return list;
}
private void updateCurrDirName(String selStr) {
if (selStr.equals(UPStr)) {
f.removeAll();
int i = currDirName.lastIndexOf('/', currDirName.length() - 2);
if (i == -1) {
currDirName = "";
} else {
currDirName = currDirName.substring(0, i + 1);
}
directoryList = createDirectoryList();
tpBrowser.removeTabAt(0);
tpBrowser.addTab("ViewEntry", directoryList);
f.revalidate();
} else if (selStr.endsWith("/")) {
f.removeAll();
currDirName += selStr;
directoryList = createDirectoryList();
tpBrowser.removeTabAt(0);
tpBrowser.addTab("ViewEntry", directoryList);
f.revalidate();
}
}
}
0 0
- Lwuit TabbedPane无更新
- LWUIT: TabbedPane的两个注意点。
- TabbedPane
- LWUIT
- TabbedPane简介
- TabbedPane风格
- 无刷新更新listview
- LWUIT相关内容
- LWUIT储备
- 你好,LWUIT!
- LWUIT简介
- lwuit Animations
- 调整多页签TabbedPane上的面板顺序
- Java的TabbedPane的简单使用
- AJAX无刷新更新数据
- xmlhttp无刷新数据更新
- XMLHttpRequest无刷新更新页面
- repeater+aspnetpager无刷新更新
- 如何在服务器中对上传的视频进行截图?
- j2me的效率和代码可重用性的矛盾?
- 求助!!如何用S60 3rd FP1的SDK,ActivePerl,JRE和Visual C++搭建Symbian集成开发环境??
- 新手请教一个循环替换问题
- 也谈Java 的前途之我见,EJB J2ME无线应用,嵌入式应用 等
- Lwuit TabbedPane无更新
- 网络连接问题。
- 连接无法找到sdf数据库文件
- 新手求助 加vb代码
- 我想学习J2ME,请问那里可以下载电子书籍!
- 如何在windows mobile中多添加一个DLG 我添加一直出错。
- 如何在WebSphere中部署J2ME开发功能?
- 一个在ASP中用ADO连接SQLServer2005的问题
- 我登陆后台时,如果我把管理员账号故意输错,密码正确点击登录后,不能正常登录,出现错误页面,