J2ME GUI实战之四 ----------LWUIT的Button使用以及窗体布局

J2ME之Form居中组件 这是Form对Item布局的一个演示,仅在于指出如何进行组件居中布局。 立即下载
  本文来自:http://blog.youkuaiyun.com/hellogv/ ,转载必须注明出处!
BorderLayout,就是把窗体布局分成东、南、西、北、中这5部分
//BoxLayout-X,就是把控件从左往右排列
//BoxLayout-Y,就是把控件从上往下排列
//FlowLayout,就是把控件按行排列,一行装不下则放到第二行......
//GridLayout,这就是实现九宫图的排列方式!!!!!

    LWUIT要求使用Form和任何控件,都要设置窗体布局。OK,现在回顾一下以前所实现的九宫图,其原理是这样:九宫图本质就是九个按钮按照
GridLayout排列,并且按钮附带图标,而且按钮获得焦点(按钮切换)时,会显示特效。
    用过J2SE GUI的朋友,应该对这些不陌生,没接触过J2SE GUI的朋友也许需要一点时间消化一下。
    OK,以下代码同样修改自Sample例子里面的,多余的话就不说了:
  1. /*
  2.  * Copyright ?2008 Sun Microsystems, Inc. All rights reserved.
  3.  * Use is subject to license terms.
  4.  *
  5.  */
  6. package com.sun.lwuit.uidemo;
  7. import com.sun.lwuit.Button;
  8. import com.sun.lwuit.Form;
  9. import com.sun.lwuit.events.ActionEvent;
  10. import com.sun.lwuit.events.ActionListener;
  11. import com.sun.lwuit.layouts.BorderLayout;
  12. import com.sun.lwuit.layouts.BoxLayout;
  13. import com.sun.lwuit.layouts.FlowLayout;
  14. import com.sun.lwuit.layouts.GridLayout;
  15. /**
  16.  *本例演示如何布局窗体控件
  17.  */
  18. public class LayoutDemo implements ActionListener {
  19.     public Form form = new Form("LayoutDemo");
  20.     private Button border;
  21.     private Button boxY;
  22.     private Button boxX;
  23.     private Button flow;
  24.     private Button grid;
  25.     LayoutDemo(){
  26.         
  27.         form.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
  28.         //BorderLayout,就是把窗体布局分成东、南、西、北、中这5部分
  29.         border = new Button("BorderLayout");
  30.         //顾名思义,设置按钮背景的透明度,范围0~255,可以用Util的资源编辑器来预先修改
  31.         border.getStyle().setBgTransparency(100);
  32.         //每个button都需要设计监听事件
  33.         border.addActionListener(this);
  34.         //BoxLayout-Y,就是把控件从上往下排列
  35.         boxY = new Button("BoxLayout-Y");
  36.         boxY.getStyle().setBgTransparency(100);
  37.         boxY.addActionListener(this);
  38.         //BoxLayout-X,就是把控件从左往右排列
  39.         boxX = new Button("BoxLayout-X");
  40.         boxX.getStyle().setBgTransparency(100);
  41.         boxX.addActionListener(this);
  42.         //FlowLayout,就是把控件按行排列,一行装不下则放到第二行......
  43.         flow = new Button("FlowLayout");
  44.         flow.getStyle().setBgTransparency(100);
  45.         flow.addActionListener(this);
  46.         //GridLayout,这就是实现九宫图的排列方式!!!!!
  47.         grid = new Button("GridLayout");
  48.         grid.getStyle().setBgTransparency(100);
  49.         grid.addActionListener(this);
  50.         
  51.         addComponents(form);
  52.         form.show();
  53.     }
  54.     private void addComponents(final Form f){
  55.         f.removeAll();
  56.         f.addComponent(boxY);
  57.         f.addComponent(boxX);
  58.         f.addComponent(border);
  59.         f.addComponent(flow);
  60.         f.addComponent(grid);
  61.     }
  62.     public void actionPerformed(ActionEvent arg0) {
  63.         String button_name=((Button)(arg0.getSource())).getText();
  64.         if(button_name.equals("BorderLayout"))
  65.         {
  66.             form.setLayout(new BorderLayout());
  67.             form.removeAll();
  68.             form.setScrollable(false);
  69.             form.addComponent(BorderLayout.NORTH, border);
  70.             form.addComponent(BorderLayout.EAST, boxY);
  71.             form.addComponent(BorderLayout.CENTER, grid);
  72.             form.addComponent(BorderLayout.WEST, flow);
  73.             form.addComponent(BorderLayout.SOUTH, boxX);
  74.             form.show();
  75.         }
  76.         else if(button_name.equals("BoxLayout-Y"))
  77.         {
  78.             form.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
  79.             form.setScrollable(false);
  80.             addComponents(form);
  81.             form.show();
  82.         }
  83.         else if(button_name.equals("FlowLayout"))
  84.         {
  85.             form.setLayout(new FlowLayout());
  86.             form.setScrollable(false);
  87.             addComponents(form);
  88.             form.show();
  89.         }
  90.         else if(button_name.equals("GridLayout"))
  91.         {
  92.             form.setLayout(new GridLayout(3, 2));
  93.             form.setScrollable(false);
  94.             addComponents(form);
  95.             form.show();
  96.         }
  97.         else if(button_name.equals("BoxLayout-X"))
  98.         {
  99.             form.setLayout(new BoxLayout(BoxLayout.X_AXIS));
  100.             form.setScrollable(true);
  101.             addComponents(form);
  102.             form.show();
  103.         }
  104.     }
  105. }

自己写的J2ME小例子 自己写的一个J2ME的单机小游戏 希望大家可以多多指教 立即下载

相关推荐

VPI与Matlab协同仿真:相干光通信接收端DSP算法全解析

本文详细解析了如何利用VPI与Matlab协同仿真,构建完整的相干光通信接收端DSP算法处理闭环。重点介绍了从VPI导出数据后,在Matlab中实现时钟恢复、偏振解复用和载波相位估计等核心算法的步骤与原理,并阐述了如何通过误码率计算完成仿真验证,为相干光通信系统算法研究与验证提供了高效实用的方法。

ll5678的博客 611

J2ME GUI实战之9 ----------自定义控件布局,DIY Layout

 最近,有项目中用LWUIT做UI时,发现GridLayout有个不好的地方,那就是。。。。。如下图:可以发现,使用GridLayout是把控件按照界面长宽平分而排列的,左边的Label控件就占了冗余的地方。。。。。。。。。或许你会想到使用其他GridLayout来实现自适应的控件并排效果,但是LWUIT原有的Layout是没有完全符合这个要求的,所以就只能靠自己DIY

hellogv的专栏 5440

从硅片到时钟:揭秘SiTime MEMS谐振子的精密制造之旅

本文深入解析了SiTime MEMS谐振子的精密制造工艺,从硅晶圆的提纯到DRIE深硅刻蚀,再到真空封装技术,揭示了其如何克服传统石英晶振的局限。通过对比测试数据,展示了MEMS谐振子在精度、可靠性和生产效率上的显著优势,特别是在5G基站和汽车电子等领域的应用潜力。

weixin_42522953的博客 404

J2ME中CustomItem控制界面布局

 import javax.microedition.lcdui.CustomItem;import javax.microedition.lcdui.Graphics;/** * @作者 Jcuckoo * @创建日期 2009-5-11 * @版本 V 1.0 */public class MyCustomItem extends CustomIte

jCuckoo的专栏 2837

《科研伦理与学术规范》期末考试答案2023

26单选(2 分)某学术杂志的评稿人同时是某高校相关专业的硕士生导师,在评判一个稿件的时候,他发现该作者研究的题目很有价值, 他便一边压下这个稿子,一边将稿子的纲要传给自己门下的硕士生, 指导他们使用这个题目独立写出一篇论文,并帮助他们发表在其他期 刊上。D.要善待实验动物,是指在饲养管理和使用实验动物过程中,要采取有效措施,使实验动物免遭不必要的伤害、饥渴、不适、惊恐、折磨、疾病和疼痛,保证动物能够实现自然行为,受到良好的管理与照料,为其提供清洁、舒适的生活环境。张某在压力之下不得不屈从。

Glenseeds的博客 4万+

告别手动打点!用Cesium为你的大疆无人机快速生成区域巡查航线(保姆级教程)

本文详细介绍了如何利用Cesium平台为大疆无人机快速生成区域巡查航线的保姆级教程。通过自动化航线规划,告别传统手动打点的繁琐操作,实现高效、无死角的区域覆盖。文章涵盖环境搭建、实战案例及高级优化技巧,特别适合无人机操作员和巡检工作者提升工作效率。

weixin_30399821的博客 521

J2ME GUI实战之一 ----------LWUIT简介

本文来自:http://blog.youkuaiyun.com/hellogv/ ,转载必须注明出处!首先,想让大家看看LWUIT可以做出什么界面:这种界面,用J2ME-Polish也不难做出来,但是作者我更喜欢LWUIT,因为她发展得很快很快,觉得值得大家关注!!好了,继续介绍,以下内容摘自网络:Sun发布了LWUIT(Light-Weight UI Toolkit)的源代码以及示例代码(示例后面会详细说明

hellogv的专栏 6731

ZYNQ软件复位重启、程序跳转的实现方法(Multiboot)

目录一、增加FSBL的调试信息 一、增加FSBL的调试信息 启动过程的调试信息如下: Xilinx First Stage Boot Loader Release 2016.4 Jan 19 2020-10:35:00 Devcfg driver initialized Silicon Version 3.1 Boot mode is QSPI Single Flash Informat...

weixin_41922484的博客 2万+

J2ME GUI实战之二 ----------LWUIT实现手机九宫图

 本文来自:http://blog.youkuaiyun.com/hellogv/ ,转载必须注明出处! 本文的源代码,已放到 http://download.youkuaiyun.com/user/hellogv 供大家下载!首先,想让大家看看九宫图实现之后的界面:本文所用的代码,是来自LWUIT所提供的Sample例子,但是对例子做出以下修改:1.设计自主的res资源文件2.把builde.xml里面的 。。。。。

hellogv的专栏 6519

玩转Docker小游戏项目系列:Docker部署吃豆人经典小游戏

玩转Docker小游戏项目系列:Docker部署吃豆人经典小游戏

jks212454的博客 733

第1章 环境准备

本章是 Kubernetes 高可用集群部署的前置基础环境配置,所有节点必须严格按顺序执行。主要内容包括:节点规划(IP、角色、配置要求)、VMware 克隆节点环境清理(解决 MAC 地址和主机名冲突)、统一工作目录创建、主机名与 hosts 解析配置、系统基础升级、防火墙与 swap 关闭、内核模块加载(overlay、br_netfilter、ip_vs)、网络参数优化(IP 转发、桥接过滤)、时间同步配置等。Ubuntu 24.04 内核 6.8+ 原生支持 eBPF 和 IPVS,无需手动升级内核

幸福街--linux技术分享 211

java android实例_Android入门简单实例

本文以一个简单的实例为大家介绍Android编程的入门知识,该案例是属于较早期的实例程序,读者可以对比学习,全面的了解Android程序的演化,以加深对Android程序设计的理解。程序运行平台为Android SDK 1.5 + Eclipse + ADT,Android跟J2ME最大的区别在于UI的不同,当然Android比J2ME多出很多东西,并且多出的是J2ME无法作对比的。刚开始做And...

weixin_36070745的博客 410

9、自动定理证明的发展历程与关键技术

本文全面介绍了自动定理证明的发展历程、关键技术及其实际应用,包括消解原理、参数化、支撑集策略等核心方法,并探讨了算法优化、数据结构优化及并行计算等提升效率的手段。同时,文章展望了未来发展方向,如深度学习在定理证明中的应用、交互式定理证明以及高阶逻辑的研究前景。

ll5678的博客 508

Android入门第一篇LinearLayout + Button + EditText + AlertDialog

本文所讲到的是LinearLayout + Button + EditText + AlertDialog的简单使用。 Activity以 LinearLayout排列,共用到两个 LinearLayout,第一个是用于全窗体,第二个用于存放两个Button,第二个 LinearLayout放在EditText控件下面,以下给出main.xml的代码: [xhtml] view p

Android 455

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Android入门第一篇

本文来自http://blog.youkuaiyun.com/hellogv/           最近Android挺火的,可惜刚毕业,温饱才刚刚解决,还没能力买台Android手机,所以目前的开发只能用模拟器来做。。。就目前 Android SDK 1.5 + Eclipse + ADT的开发方式来说,跟J2ME最大的区别在于UI的不同,当然Android比J2ME多出很多东西

hellogv的专栏 10万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Android入门第一篇layout,onclicklisenter

本文来自http://blog.youkuaiyun.com/hellogv/ 最近Android挺火的,可惜刚毕业,温饱才刚刚解决,还没能力买台Android手机,所以目前的开发只能用模拟器来做。。。就目前 Android SDK 1.5 + Eclipse + ADT的开发方式来说,跟J2ME最大的区别在于UI的不同,当然Android比J2ME多出很多东西,多出的...

weixin_30558305的博客 94

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

上一篇: J2ME GUI实战之三 ----------LWUIT实现切换特效
下一篇: J2ME GUI实战之五 ----------LWUIT的绘图功能
欧巴Godwin
欧巴Godwin 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄20年 9690粉丝 141原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值