Lwuit TabbedPane无更新

原创 2017年01月03日 02:50:40
写了段代码,要显示文件目录及目录下的文件。要求使用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();
}
}
}

JTabbedPane的选项卡自定义位置

转自: 找遍中国的网站几乎没有一个弄出来的,最终在一个小日本网站上找到了。 代码如下: package com.test; //-*- mode:java; encoding:utf8n;...
  • ltx06
  • ltx06
  • 2014年06月07日 00:11
  • 2319

skype 无法更新安装

今天不知道咋的,我的skype在发送文件时,我的skype上看不到发送的文件,对方能看见,但是接收不成功。网上查询的解决方案是需要重新安装skype,于是我就找了个4.0的版本安装,先卸载了原有版本,...
  • wqjsir
  • wqjsir
  • 2014年05月13日 22:27
  • 5297

解决windows10无法更新问题

手头有一个MacBook,但是实在用不惯MacOS,于是下载了Boot Camp,分了区,从网上随便down了一个Win10,如何激活?嗯,大家都懂的。☺ 装完之后,winver显示的版本号是143...
  • sharpbladepan
  • sharpbladepan
  • 2016年12月11日 20:31
  • 2264

LWUIT 开发指南第二章里的 Hello TabbedPane、Hello TextArea、Hello TextField、Hello Calendar、Hello Tickering 源代码

  • 2010年02月23日 13:59
  • 8.98MB
  • 下载

TabbedPane使用实例

  • 2013年08月17日 01:03
  • 10KB
  • 下载

LWUIT与LCDUI的结合

Lwuit与Lcdui可以相互调用,如果需要在一个Midlet中同时使用Lwuit和Lcdui库,需要在Midlet中保留一个Lcdui Display的全局变量,可以在startApp方法中初始化。...
  • simayilong
  • simayilong
  • 2011年03月05日 17:42
  • 663

LWUIT引路蜂地图开发示例:路径查询

可以通过RasterMap的getDirection()方法来查询路径,和查询地址类似,路径查询的结果也是通过回调函数的方式来通知应用程序的,下面的例子返回南京到北京的路径。返回结果存放在MapDir...
  • mapdigit
  • mapdigit
  • 2012年07月16日 09:27
  • 4331

LWUIT引路蜂地图开发示例:选择地图服务

引路蜂地图服务缺省使用Google地图服务,但你也可以选择其它地图服务,比方说当Google服务离线时,您可以选择MapAbc的地图服务,另外要注意的是中国地图是有偏移的。如果想使用无偏移的中国地图,...
  • mapdigit
  • mapdigit
  • 2012年07月17日 08:27
  • 4625

LWUIT 简易漂亮的相册

我用LWUIT做的这个相册有两个界面:   1.显示相片列表   2.显示相册原始图   具体实现:   1.显示相片列表   原始图片一般都是比较大的,在显示相册列表时,需要把这些大图生成缩略图,缩...
  • z303729470
  • z303729470
  • 2011年04月27日 09:21
  • 424

LWUIT引路蜂地图开发示例:叠加自定义图层

在开发应用的过程中,常常需要在地图上需绘制一点自定义的兴趣点或是自定义的几何图形。引路蜂地图包中RasterMap最终提供的基实就是一张图片 protected void paint(Graphic...
  • mapdigit
  • mapdigit
  • 2012年07月17日 08:28
  • 4340
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Lwuit TabbedPane无更新
举报原因:
原因补充:

(最多只允许输入30个字)