黑莓表视图

2023-12-24

这是我的应用程序。如何在下面添加表格视图或网格。 我应该画所有东西吗请帮忙 这是我的代码

import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.system.*;
import net.rim.device.api.util.*;
import java.util.*;


/*An application in which user enters the data. this data is displayed when user press the save button*/



public class Display extends UiApplication {

 /*declaring Strings to store the data of the user*/

 String getFirstName;
 String getLastName;
 String getEmail;
 String getGender;
 String getStatus;

 /*declaring text fields for user input*/
 private AutoTextEditField firstName;

 private AutoTextEditField lastName;

 private EmailAddressEditField email;
/*declaring choice field for user input*/
 private ObjectChoiceField gender;
 /*declaring check box field for user input*/
 private CheckboxField status;
 //Declaring button fields
 private ButtonField save;
 private ButtonField close;
 private ButtonField List;
 /*declaring vector*/
 private static Vector _data;
 /*declaring persistent object*/
 private static PersistentObject store;

 /*creating an entry point*/
public static void main(String[] args) 
{

  Display obj = new Display();
  obj.enterEventDispatcher();



}

/*creating default constructor*/
 public Display() 
 {

  /*Creating an object of the main screen class to use its functionalities*/
  MainScreen mainScreen = new MainScreen();

  //setting title of the main screen
  mainScreen.setTitle(new LabelField("Enter Your Data"));

  //creating text fields for user input
  firstName = new AutoTextEditField("First Name: ", "");
  lastName= new AutoTextEditField("Last Name: ", "");
  email= new EmailAddressEditField("Email:: ", "");

  //creating choice field for user input
  String [] items = {"Male","Female"};
  gender= new ObjectChoiceField("Gender",items);
  //creating Check box field
  status = new CheckboxField("Active",true);
  //creating Button fields and adding functionality using listeners
  save = new ButtonField("Save",ButtonField.CONSUME_CLICK);
  save.setChangeListener(new FieldChangeListener()
  {
   public void fieldChanged(Field field, int context)
   {
    save();

   }
  });
  close = new ButtonField("Close",ButtonField.CONSUME_CLICK);
  close.setChangeListener(new FieldChangeListener()
  {
   public void fieldChanged(Field field, int context)
   {
    onClose();
   }
  });
  List = new ButtonField("List",ButtonField.CONSUME_CLICK);
  List.setChangeListener(new FieldChangeListener()
  {
   public void fieldChanged(Field field, int context){

    pushScreen(new ListScreen());



   }
  });
  //adding the input fields to the main screen
  mainScreen.add(firstName);
  mainScreen.add(lastName);
  mainScreen.add(email);
  mainScreen.add(gender);
  mainScreen.add(status);
  //adding buttons to the main screen
  HorizontalFieldManager horizontal = new HorizontalFieldManager(HorizontalFieldManager.FIELD_HCENTER);
  horizontal.add(close);
  horizontal.add(save);
  horizontal.add(List);
  mainScreen.add(horizontal);

  //adding menu items

  mainScreen.addMenuItem(saveItem);
  mainScreen.addMenuItem(getItem);
  mainScreen.addMenuItem(Deleteall);
  //pushing the main screen
  pushScreen(mainScreen);
 }
 private MenuItem Deleteall = new MenuItem("Delete all",110,10)
 {
  public void run()
  {
   int response = Dialog.ask(Dialog.D_YES_NO,"Are u sure u want to delete entire Database");
   if(Dialog.YES == response){
   PersistentStore.destroyPersistentObject(0xdec6a67096f833cL);
   onClose();
   }
   else
    Dialog.inform("Thank God");
  }
 };
//adding functionality to menu item "saveItem" 
private MenuItem saveItem = new MenuItem("Save", 110, 10) 
{

  public void run() 
  {
   //Calling save method
   save();
  }
};
//adding functionality to menu item "saveItem" 
private MenuItem getItem = new MenuItem("Get", 110, 11) 
{
 //running thread for this menu item
 public void run() 
 {


   //synchronizing thread
   synchronized (store) 
   {
    //getting contents of the persistent object

    _data = (Vector) store.getContents();
    try{

     for (int i = _data.size()-1; i >-1; i--) 
     {

      StoreInfo info = (StoreInfo)_data.elementAt(i);
      //checking for empty object
      if (!_data.isEmpty()) 
      {
      //if not empty
      //create a new object of Store Info class






      //storing information retrieved in strings
      getFirstName = (info.getElement(StoreInfo.NAME));
      getLastName  = (info.getElement(StoreInfo.LastNAME));
      getEmail   = (info.getElement(StoreInfo.EMail));
      getGender   =  (info.getElement(StoreInfo.GenDer));
      getStatus  = (info.getElement(StoreInfo.setStatus));

       //calling the show method
      show();
      }

     }
    }
    catch(Exception e){}
   } 
  }


};
public void save()
{



 //creating an object of inner class StoreInfo
 StoreInfo info = new StoreInfo();
 //getting the test entered in the input fields
 info.setElement(StoreInfo.NAME, firstName.getText());
 info.setElement(StoreInfo.LastNAME,lastName.getText());
 info.setElement(StoreInfo.EMail, email.getText());
 info.setElement(StoreInfo.GenDer,gender.toString());
 if(status.getChecked())
  info.setElement(StoreInfo.setStatus, "Active");
 else
  info.setElement(StoreInfo.setStatus, "In Active");
 //adding the object to the end of the vector
 _data.addElement(info);
 //synchronizing the thread
 synchronized (store) 
 {

  store.setContents(_data);
  store.commit();



 }
 //resetting the input fields

 Dialog.inform("Success!");
 firstName.setText(null);
 lastName.setText(null);
 email.setText("");
 gender.setSelectedIndex("Male");
 status.setChecked(true);


}
//coding for persistent store
static {

store =
PersistentStore.getPersistentObject(0xdec6a67096f833cL);
synchronized (store) {
if (store.getContents() == null) {
store.setContents(new Vector());
store.commit();
}
}
_data = new Vector();
_data = (Vector) store.getContents();

}
//new class store info implementing persistable
private static final class StoreInfo implements Persistable 
{
 //declaring variables
 private Vector _elements;
 public static final int NAME = 0;
 public static final int LastNAME = 1;
 public static final int EMail= 2;
 public static final int GenDer = 3;
 public static final int setStatus = 4;

 public StoreInfo() 
 {
  _elements = new Vector(5);
  for (int i = 0; i < _elements.capacity(); ++i) 
  {
   _elements.addElement(new String(""));
  }
 }

 public String getElement(int id) 
 {
  return (String) _elements.elementAt(id);
 }
 public void setElement(int id, String value) 
 {
  _elements.setElementAt(value, id);
 }
}
//details for show method
public void show()
{
 Dialog.alert("Name is "+getFirstName+" "+getLastName+"\nGender is "+getGender+"\nE-mail: "+getEmail+"\nStatus is "+getStatus);
}
public void list()
{

 Dialog.alert("haha");


}

//creating save method

//overriding onClose method

public boolean onClose()
{


 System.exit(0);
 return true;
}

 class ListScreen extends MainScreen 
{


  String firstUserName="Ali";
  String lastUserName="Asif";
  String userEmail="assad";
  String userGender="asdasd";
  String userStatus="active";
  private AutoTextEditField  userFirstName;
  private AutoTextEditField  userLastName;
  private EmailAddressEditField  userMail;
  private ObjectChoiceField  usersGender;
  private CheckboxField usersStatus; 
  private ButtonField btnBack;

 public ListScreen()
 {
  SeparatorField sps = new SeparatorField();
  HorizontalFieldManager hr = new HorizontalFieldManager(HorizontalFieldManager.FIELD_HCENTER|HorizontalFieldManager.HORIZONTAL_SCROLLBAR);
  VerticalFieldManager vr = new VerticalFieldManager();
  setTitle(new LabelField("List of All Data"));
  list();
  btnBack = new ButtonField("Back",ButtonField.CONSUME_CLICK);
  btnBack.setChangeListener(new FieldChangeListener()
  {
   public void fieldChanged(Field field,int context)
   {
    UiApplication.getUiApplication().popScreen(getScreen());
   }
  });

  hr.add(btnBack);



  add(hr);
  add(sps);

 }
public void list()

 {
 _data = (Vector) store.getContents();
 try{
  int sn=0;
  for (int i = _data.size()-1; i >-1; i--,sn++) 
  {

   StoreInfo info = (StoreInfo)_data.elementAt(i);
   //checking for empty object
   if (!_data.isEmpty()) 
   {
   //if not empty
   //create a new object of Store Info class






   //storing information retrieved in strings
    firstUserName = (info.getElement(StoreInfo.NAME));
    lastUserName = (info.getElement(StoreInfo.LastNAME));
    userEmail  = (info.getElement(StoreInfo.EMail));
    userGender   =  (info.getElement(StoreInfo.GenDer));
    userStatus  = (info.getElement(StoreInfo.setStatus));

    //calling the listAll method
   listAll();
   }

  }
 }
 catch(Exception e){}

 }
 public void listAll()
 {
  SeparatorField sp = new SeparatorField();
  SeparatorField sps = new SeparatorField();
  HorizontalFieldManager hrs = new HorizontalFieldManager(HorizontalFieldManager.HORIZONTAL_SCROLL);
  hrs.add(new RichTextField(""+firstUserName+" "+lastUserName+" | "+userEmail+" | "+userGender+" | "+userStatus));
  //add(new RichTextField("Email: "+userEmail));
  //add(new RichTextField("Gender: "+userGender));
  //add(new RichTextField("Status: "+userStatus));
  //SeparatorField sp = new SeparatorField();
  add(hrs);
  add(sp);
  add(sps);
 }

 public boolean onClose()
 {
  System.exit(0);
  return true;
 }

}
}

有一个不错的网格字段管理器 http://www.thinkingblackberry.com/wp-content/uploads/GridFieldManager.java作者:安东尼·里兹克。

Code:

    public void list()
    {
        if (null != mGrid && null != mGrid.getManager())
            mGrid.getManager().delete(mGrid);
        int colWidth = net.rim.device.api.system.Display.getWidth() / 4; 
        mGrid = new GridFieldManager(new int[] { 0, colWidth, colWidth,
                colWidth, colWidth }, VERTICAL_SCROLL | VERTICAL_SCROLLBAR);
        mGrid.add(new NullField(FOCUSABLE));
        mGrid.add(new LabelField("Name"));
        mGrid.add(new LabelField("E-Mail"));
        mGrid.add(new LabelField("Gender"));
        mGrid.add(new LabelField("Active"));
        add(mGrid);
        _data = (Vector) store.getContents();
        try {
            int sn = 0;
            for (int i = _data.size() - 1; i > -1; i--, sn++) {

                StoreInfo info = (StoreInfo) _data.elementAt(i);
                // checking for empty object
                if (!_data.isEmpty()) {
                    // if not empty
                    // create a new object of Store Info class

                    // storing information retrieved in strings
                    firstUserName = (info.getElement(StoreInfo.NAME));
                    lastUserName = (info.getElement(StoreInfo.LastNAME));
                    userEmail = (info.getElement(StoreInfo.EMail));
                    userGender = (info.getElement(StoreInfo.GenDer));
                    userStatus = (info.getElement(StoreInfo.setStatus));

                    // calling the listAll method
                    mGrid.add(new NullField(FOCUSABLE));
                    mGrid.add(new LabelField(firstUserName + " "
                            + lastUserName));
                    mGrid.add(new LabelField(userEmail));
                    mGrid.add(new LabelField(userGender));
                    mGrid.add(new LabelField(userStatus));
                }

            }
        } catch (Exception e) {
        }

    }

也可以看看BlackBerry 网格布局管理器已更新 http://www.thinkingblackberry.com/archives/133

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

黑莓表视图 的相关文章

  • Qt - QProcess 不工作

    我尝试启动 Internet Explorer 所以我使用下面的代码 QProcess process new QProcess this QString temp C Program Files Internet Explorer iex
  • 如何在Netbeans中设置JList的ListModel?

    我在 Netbeans IDE 的帮助下设计了一个 Swing GUI 该 GUI 包含一个 JList 默认情况下 它使用 QAbstractListModel 将其作为 JList 构造函数中的参数传递以创建该 JList 我想在 Ne
  • 需要知道 jQuery UI Widget 是否已应用于 DOM 对象

    我正在使用 jQuery 并与 jQuery UI 进行一些交互 我需要在其中获取选项 然而 有可能 jQuery UI 功能尚未应用于 DOM 对象 当我访问选项时 我现在收到 JavaScript 错误 我有一个带有进度条的 DOM 对
  • 使用 GTK+2 或 GTK+3 学习 GUI 编程?

    我是 GUI 编程新手 我还没有找到最适合我的目的的库 我想制作桌面环境应用程序 例如扩展坞 面板 桌面等 我已经开始学习GTK的基础知识 主要使用PyGtk 我在网上找到的大多数教程都是针对 GTK 2 0 的 然而最近 GTK 3 已发
  • 无边框 NSButton 单击时变为灰色

    我正在使用三个带有图像集的 NSButton 制作一个小应用程序 这些按钮没有边框也没有背景 但是 当我单击按钮时 它会变成灰色矩形 我怎样才能解决这个问题 谢谢 让你的按钮类型为NSMomentaryChangeButton myBtn
  • 在 Qt 中旋转图像

    在我的应用程序中 我想旋转图像 我已将图像设置为QLabel 我已经设置了一个QPushButton 单击该按钮时我想向四个方向旋转图像 右 gt 底部 gt 左 gt 顶部 有什么帮助吗 假设您有一个指向 QLabel 的指针 您可以执行
  • UI 函数在快速事件完成之前触发

    我有一个停靠在 Silverlight 应用程序中的 Web 浏览器框架 有时会在其上弹出全窗口 XAML Silverlight UI 元素 我已经或多或少修复了一个老问题 即 Web 框架的内容似乎与 Silverlight 内容不能很
  • 填充 UIScrollView 的垂直空间

    我正在研究一个具有UIScrollView 我想要做的是将标签固定在可滚动区域的顶部 并将按钮固定在底部 两者之间的空间最小 这个想法是 如果标签的高度增加 按钮将被向下推 以便用户必须向下滚动才能找到它 但是 如果标签很短 则标签和按钮之
  • Xamarin Forms:单击重新启动按钮时网格按钮 UI 中断

    我正在使用一个button在 的里面grid用于显示字母以实施Word search game 最初 用户界面看起来不错 但是当单击play again按钮 UI 中断 截屏 网格内设置按钮的代码 void SetGridLayout ch
  • dotNet:有没有办法在 UI 线程上执行 Join 语句?

    我正在编写一个简单的线程应用程序 当单击开始按钮时 应用程序禁用此按钮 运行 5 个线程 只需进行 For 迭代并更新 5 个进度条 最后一个线程正在等待线程结束 以重新启用我的开始按钮 问题 用户看到按钮在进度条达到 100 之前已启用
  • 保持 GUI 独立

    我有一个程序 除其他外 有一个命令行界面 可以让用户输入字符串 然后通过网络发送字符串 问题是我不确定如何将 GUI 内部生成的事件连接到网络接口 假设我的 GUI 类层次结构如下所示 GUI gt 主窗口 gt 命令行界面 gt Entr
  • Java GUI,根据actionListener更改面板

    我在两个不同的面板中添加了两个按钮 如果单击第一个按钮 则需要转到下一个面板 其中包含第二个按钮 但是当我单击第一个按钮时 该按钮没有被替换 Java GUI import java awt event ActionEvent import
  • 在 kivy 中嵌套小部件

    我正在尝试在 kivy 中制作一个界面 我认为即使在完成教程之后 我仍然不了解自定义小部件以及如何对它们进行层次结构的一些基本知识 我认为我有更多的盒模型 html 思维方式 因此小部件嵌套在本机 GUI 中的方式对我来说仍然有点陌生 一些
  • 我怎样才能有一个像这样的动画SliverAppBar?

    我希望这些动画之间能够平滑 我尝试使用AnimatedSize AnimatedOpacity and AnimatedPositioned但几乎没有错误 我不知道如何使用这些SliverAppBar 在其他例子中我看到人们使用Layout
  • 使用种子值生成 AES 密钥

    如何生成具有种子值的 AES 密钥 以便每当我生成具有相同种子值的密钥时 我都能够获得相同的 AES 密钥 我想为我的 Blackberry Pearl 8100 设备生成此密钥 我无法使用 AESKey keyData 生成 AES 密钥
  • 如何阻止 JTextPane 吞噬键盘快捷键(加速器)?

    我的应用程序的主 JFrame 包含一个 JTextPane 虽然它具有焦点 但它会消耗所有键盘快捷键 加速器 而不是将它们传递到 JFrame 的 JMenu 这意味着虽然它具有焦点 但 新文档 的 ctrl n 不起作用 显然 它正确处
  • 如果在构造函数中初始化该属性,则似乎不会设置 XAML 绑定

    当属性在构造函数内初始化时 我遇到了控件模板内数据绑定的问题 这是展示案例 您也可以下载样品溶液 http www filehosting org file details 75794 WpfApplication5 zip 自定义控件1
  • 通过 inflate 将 XML 属性从合并布局转换为relativelayout

    根据这个 CommonsWare 示例 我设法将我的relativelayout子类与具有合并根的xml布局中描述的布局合并 我唯一担心的是我无法在 xml 中描述我的relativelayout参数 我的 xml 布局
  • Perl Tk 模块有哪些缺点?

    与在 Perl 中创建 GUI 的其他解决方案相比 Tk 模块有哪些缺点 我最近浏览了 Perl 的各种 gui 模块 这是我的总结 免责声明 最终我发现现有模块都不能满足我的需求 所以我开始编写自己的 gui 工具包 Tk 工作起来很不错
  • 在 React 中切换 css 类

    如何使用布尔值切换 React 中元素上 css 类的存在 在 Angular 2 中我可以这样做 class red isRed 如何在 React 中做熟悉的事情 在 React 中 元素使用如下语法获取它们的类 div div 但请注

随机推荐

  • pytest 夹具中的 pytest-mock 模拟程序

    我试图找出为什么我似乎无法在装置中使用模拟返回值 具有以下进口 import pytest import uuid 有效的 pytest mock 示例 def test mockers mocker mock uuid mocker pa
  • 悬停时更改 webkit 滚动条宽度时的重绘问题

    我正在尝试更改悬停时滚动条的宽度 我可以更改背景颜色和其他 CSS 属性 但宽度很挑剔 如果我右键单击该元素并查看调试窗口 则会发生重绘 并且我会看到更宽的滚动条 有没有一个纯 CSS 的解决方案来解决这个问题 http jsfiddle
  • Vector 或 MutableList / ListBuffer 以提高性能

    如果这是重复的 我深表歉意 我做了一些搜索 但没有找到我需要的东西 我们的应用程序中有一个性能关键部分 可以将 Play 2 0 转换为Enumerator 可以被认为是Stream 传入数据到List 或类似 我们将使用fold方法上En
  • CTE 错误:“锚点和递归部分之间的类型不匹配”

    我正在执行以下语句 WITH cte AS SELECT 1 as rn name1 as nm UNION ALL SELECT rn 1 nm name CAST rn 1 as varchar 255 FROM cte a WHERE
  • 为什么没有找到从我的类库到另一个类库的连接字符串?

    I am having the architecture like this 其中MVC层是表示层 EF 是类库 Repository 是另一个类库 我试图通过创建 EF 上下文对象将数据从存储库插入数据库 将 EF 引用添加到 Repos
  • SPARK read.jdbc 和自定义架构

    使用spark read format 一次可以以非编程方式添加自定义架构 如下所示 val df sqlContext read format jdbc option url jdbc mysql 127 0 0 1 3306 test
  • 在 Sublime Text 2 中突出显示 Github README.md 格式

    我有 README 文件 我希望 Sublime 仅突出显示由某些 标签 标识的某些代码片段 例如 Here is an example of usage This should be highlighted ruby superhero
  • ES6 类的 Mixins,用 babel 转译

    根据各种消息来源 2ality http www 2ality com 2013 07 defending constructors html 讨论 https esdiscuss org topic traits mixins for c
  • grep 仅由大写字母组成的整个单词

    看起来这很简单 但我遇到了麻烦 我有一个文本文档 例如 如下所示 这是一个文本文档一些大写的单词但并非全部都是全部大写iPhone 我想要的是解析该文档并仅匹配仅由大写字母组成的整个单词 如下所示 文本文件 SOME 但不是全部大写 我写了
  • vscode 中 Windows 10 中的 Node.js 安装错误

    Exception calling DownloadString with 1 argument s The request was aborted Could not create SSL TLS secure channel At li
  • 以内存高效的方式将大型 csv 读入稀疏 pandas 数据帧

    熊猫read csv函数似乎没有稀疏选项 我有 csv 数据 里面有很多零 它压缩得很好 并且去掉了任何0值将其减小到几乎原始大小的一半 我尝试先将其加载到密集矩阵中read csv然后打电话to sparse 但它需要很长时间并且在文本字
  • 如何在 div 元素内水平居中图像?

    如何在容器 div 内居中对齐 水平 图像 这是 HTML 和 CSS 我还添加了缩略图其他元素的 CSS 它按降序运行 因此最高的元素是所有内容的容器 最低的元素位于所有内容的内部 thumbnailwrapper color 2A2A2
  • 绕点 xna 2D 旋转

    我正在尝试围绕另一个对象 半圆形纹理 旋转一个对象 框纹理 我不知道从哪里开始 如果有人能帮助我 我将不胜感激 http msdn microsoft com en us library ff433988 aspx http msdn mi
  • QT4:如何重新启动应用程序?重新设置? [复制]

    这个问题在这里已经有答案了 1 我想重新启动我的 QT4 应用程序 只是同一应用程序的正常关闭和启动 2 为什么 好吧 我需要一个选项来 重置 一切 重新启动应用程序似乎是最简单的方法 问题是 有很多课程和一切 我没有时间将它们的每个设置恢
  • 如何比较两个图像?

    public void winCheck if button1 Image img1 w1 P2 button1 Image new Bitmap win cross png button2 Image new Bitmap win cro
  • 在刀片模板中包含 css 文件吗?

    我想在我的 Laravel Blade 模板中包含一个 css 文件 我试过了 include public path css styles css 但它说视图不存在 它确实存在 如何包含 css 文件 请注意 我知道这不是链接 css 文
  • JavaScript 回调函数中的变量范围

    我预计下面的代码会警告 0 和 1 但它警告 2 两次 我不明白原因 不知道是不是jquery的问题 另外 如果这篇文章的标题和标签不准确 请帮助我编辑
  • 如何用不同的标记绘制多条线

    我想绘制多条线MATLAB http en wikipedia org wiki MATLAB这样做 每一行的标记都会不同 我知道通过颜色可以实现这一点ColorSet hsv 12 有没有像这种简单的标记方法 好吧 我不知道内置功能MAT
  • 检测文本中的信用卡号

    我正在尝试找到一种组件或方法来检测文本中不同类型的信用卡号码 我找到了很多有关验证信用卡号的信息 但我需要能够获取文本正文 例如网页并检查是否存在信用卡号 银行帐号和 或排序代码 有谁知道有一个可以帮助商业或其他方面的组件吗 具体来说 我的
  • 黑莓表视图

    这是我的应用程序 如何在下面添加表格视图或网格 我应该画所有东西吗请帮忙 这是我的代码 import net rim device api ui import net rim device api ui component import n