按钮中的图像 - j2me

2023-12-13

我正在尝试使用 J2ME 构建一个简单的基于菜单的 GUI。菜单项当前是从 Button 类派生的类的对象。有什么办法我可以:

  1. 替换按钮中的文本并显示图像(类似图标)?

  2. 使文本和图像并排显示在同一菜单栏上。

如果我的问题不清楚,请告诉我,我会编辑它。


您可以创建自己的Item看起来像一个按钮,通过扩展CustomItem class.

这是一个运行良好的 MIDletMyButton class:

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.CustomItem;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.Item;
import javax.microedition.lcdui.ItemStateListener;
import javax.microedition.midlet.MIDlet;

public class TestMidlet extends MIDlet implements ItemStateListener {
    class MyButton extends CustomItem {
        private Image _image = null;
        private boolean _down = false;
        private int _clicks = 0;

        public MyButton(Image image) {
            super("");
            _image = image;
        }

        // Button's image
        public void setImage(Image image) {
            _image = image;
            repaint();
        }
        public Image getImage() {
            return _image;
        }

        // Has the button been clicked?
        public boolean isClicked() {
            if(_clicks>0) {
                _clicks -= 1;
                return true;
            }
            return false;
        }

        // Is the button currently down?
        public boolean isDown() {
            return _down;
        }
        public void setDown(boolean down) {
            if(_down)
                _clicks += 1;
            if(down!=_down) {
                _down = down;
                repaint();
                notifyStateChanged();
            }
        }
        public void setDown() {
            setDown(true);
        }
        public void setUp() {
            setDown(false);
        }

        // Minimal button size = image size
        protected int getMinContentHeight() {
            return getImage().getHeight();
        }
        protected int getMinContentWidth() {
            return getImage().getWidth();
        }
        // Preferred button size = image size + borders
        protected int getPrefContentHeight(int width) {
            return getImage().getHeight()+2;
        }
        protected int getPrefContentWidth(int height) {
            return getImage().getWidth()+2;
        }

        // Button painting procedure
        protected void paint(Graphics g, int w, int h) {
            // Fill the button with grey color - background 
            g.setColor(192, 192, 192);
            g.fillRect(0, 0, w, h);
            // Draw the image in the center of the button
            g.drawImage(getImage(), w/2, h/2, Graphics.HCENTER|Graphics.VCENTER);
            // Draw the borders
            g.setColor(isDown()?0x000000:0xffffff);
            g.drawLine(0, 0, w, 0);
            g.drawLine(0, 0, 0, h);
            g.setColor(isDown()?0xffffff:0x000000);
            g.drawLine(0, h-1, w, h-1);
            g.drawLine(w-1, 0, w-1, h);
        }

        // If FIRE key is pressed, the button becomes pressed (down state)
        protected void keyPressed(int c) {
            if(getGameAction(c)==Canvas.FIRE)
                setDown();
        }
        // When FIRE key is released, the button becomes released (up state)
        protected void keyReleased(int c) {
            if(getGameAction(c)==Canvas.FIRE)
                setUp();
        }
        // The same for touchscreens
        protected void pointerPressed(int x, int y) {
            setDown();
        }
        protected void pointerReleased(int x, int y) {
            setUp();
        }
    }

    MyButton button = null;

    public void itemStateChanged(Item item) {
        if(item==button) {
            if(button.isClicked())
                System.out.print("clicked, ");
            System.out.println(button.isDown()?"currently down":"currently up");
        }
    }

    public void startApp() {
        try {
            Form form = new Form("Example");
            button = new MyButton(Image.createImage("/icon.png"));
            form.append(button);
            form.setItemStateListener(this);
            Display.getDisplay(this).setCurrent(form);
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

    public void pauseApp() {
    }

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

按钮中的图像 - j2me 的相关文章

  • 如何在运行时更改按钮的颜色? [复制]

    这个问题在这里已经有答案了 button1 Button root text A1 width 8 grid row 0 column 0 button2 Button root text A2 width 8 grid row 0 col
  • 如何通过双击图标来执行JAVA程序?

    我写了一个java程序 现在我想在没有 IDE Eclipse 等的情况下打开我的控制台 java 应用程序 只需双击桌面上的可执行版本即可 我已将 java 项目导出为 Runnable JAR 文件 但无法打开 当我尝试使用cmd打开应
  • 除了前一个按钮意图之外,如何添加另一个按钮意图?

    这是我的代码 它包含一个名为的按钮button1A当我单击它时 它会打开一个名为的列表list1 如何为另一个名为 button2A 的按钮添加代码 该按钮将打开一个列表 List2 import android os Bundle imp
  • jQuery mobile-如何将选择的图标更改为自定义图标?

    我必须更改选择图标
  • 如何在按钮上执行mysql [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions PHP 单击按钮时如何执行 SQL
  • 从更多元素中仅获取唯一名称

    我动态渲染了 HTML 其中列出了未确定数量的单选按钮 这些按钮的名称代表数据库中的某些 id 我需要收集收音机的所有唯一名称 这是一个例子
  • 按下按钮时有多个命令

    我想在单击按钮时运行多个功能 例如我希望我的按钮看起来像 self testButton Button self text test command func1 command func2 当我执行此语句时 我收到错误 因为我无法将某些内容
  • 在j2me中设计表单[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在尝试在 J2ME 中设计一个表
  • 尝试获取屏幕上绘制的每个随机圆圈的 x、y 坐标

    您好 我正在制作一款游戏 该游戏将在屏幕上创建随机圆圈 随机创建的圆圈的值为红色或绿色 我的问题是 我希望不仅能够确定用户何时单击其中一个圆圈 而且还能够确定他们最终单击的圆圈 红色或绿色 下面是我的代码 我的主要问题是试图找到将要绘制的圆
  • 禁用按钮上的实际文本颜色

    VB2012 我正在创建一个按钮控件并继承自 NET 按钮 从这里夺取基地https blogs msdn microsoft com jfoscoding 2005 11 10 building a splitbutton https b
  • 如何从 AccountManager.getAccounts() 获取与特定帐户关联的图标

    每个帐户的帐户设置中都会显示一个图标 对于 Google 帐户有一个图标 对于 Facebook 帐户有另一个图标 有没有办法从应用程序的代码中获取该图标 最后我解决了 private Drawable getIconForAccount
  • actionBar后退按钮和android后退按钮的区别

    actionBar后退按钮和android后退按钮有什么区别 因为看起来 ActionBar 后退按钮是通过以下方式调用的 ActionBar actionBar getSupportActionBar actionBar setDispl
  • 从“react-native-vector-icons/Ionicons”导入图标

    我可以在同一屏幕上导入react native vector icons font awesome 和react native vector icons Ionicons 吗 基本上我想在同一屏幕上为不同的图标使用 font awesome
  • 如何让多个触摸按钮与 TouchBegan/Moved 一起使用?

    我有一堆按钮 我想以三种不同的方式激活它们 着陆 Touch Down 多次触摸 同时 Touch Drag Inside 与在钢琴上拖动手指相同 前两个在IB中显然很容易 然而 很多人 包括我自己 都在使用 Touch Drag 时遇到了
  • 如何获取linux/windows下运行应用程序的图标/图标路径?

    我想要一个打开的窗口及其图标的列表 并用 python 处理它 我以为我很接近 xprop 和 wmctrl 但我不能将它用于我的目的 我可以获取打开的窗口列表wmctrl l 但不知道如何获取任何列出的控件的图标 图标路径 请帮忙 您可以
  • 如何使按钮在我的应用程序中透明但可见

    我希望我的按钮是透明的 因为我有一个活动图像作为背景 如果按钮不透明 则这些按钮会覆盖图像 并且图像背景看起来毫无用处 如果我使用android background android color transparent 它使我的按钮除了上面
  • 使用种子值生成 AES 密钥

    如何生成具有种子值的 AES 密钥 以便每当我生成具有相同种子值的密钥时 我都能够获得相同的 AES 密钥 我想为我的 Blackberry Pearl 8100 设备生成此密钥 我无法使用 AESKey keyData 生成 AES 密钥
  • 创建连接到 facebook 的 j2me 应用程序(不是 swt 项目)

    我想创建一个简单的 j2me 应用程序作为开始 它与 facebook 链接 为了这 我从下载了 facebook apihttp kenai com projects facebookapime downloads http kenai
  • 如何更改Android应用程序的页面?

    我是安卓新手 我已经设计了由许多页面组成的应用程序 任何人都有源代码或任何可以让我知道如何构建它的东西 例如 当我单击按钮时 我希望它将页面更改为下一页 谢谢你卡 运行通过第一个应用程序教程 https developer android
  • SwiftUI 键盘工具栏有条件

    不确定这是否是一个错误或者我是否做错了什么 但如果我使用 toolbar ToolbarItemGroup placement navigationBarLeading if isFocused zipCode Text Test 当等于

随机推荐

  • 异步登录龙卷风

    我使用 Tornado 创建了一个适用于同步方法的登录页面 现在我想将其设为异步 那么我应该对以下代码进行哪些更改 import tornado ioloop import tornado web import http import ti
  • 设置 Keras 模型可训练与使每一层可训练之间有什么区别

    我有一个由一些密集层组成的 Keras 顺序模型 我将整个模型的可训练属性设置为 False 但我看到各个层的可训练属性仍然设置为 True 我是否需要将图层的可训练属性也单独设置为 False 那么将整个模型的trainable属性设置为
  • 使用 PHP 生成随机的十六进制颜色代码

    我正在开发一个项目 需要生成未定义数量的随机 十六进制颜色代码 我将如何在 PHP 中构建这样的函数 RGB 十六进制字符串只是从 0x0 到 0xFFFFFF 的数字 因此只需生成该范围内的数字并将其转换为十六进制即可 function
  • 从自定义类管理 NSURLSession 的完成处理程序

    我的应用程序的一部分涉及根据提供给用户的唯一代码为用户创建登录检查 为了使我的应用程序结构正确 我创建了一个网络助手类来处理所有网络操作 这是我从控制器类 ViewController m 调用我的帮助器类的方法 LoginNetworkH
  • 在用户的 Google 帐户上存储数据

    有什么方法可以让 PHP 支持的 Web 应用程序将数据存储在用户的 Google 帐户中吗 请求用户许可后 基本上我不想在我的服务器上存储私人用户数据 应用程序将主要处理文档 文本数据 有谷歌文档API http code google
  • 我无法清除和重置单元格的背景颜色

    在以下命令的帮助下 我可以清除单元格的内容 但不能清除其背景颜色 如何清除和设置范围内单元格的背景颜色 ob9 Range ob9 Cells 1 StartCol ob9 Cells 1 maxcolumn ClearContents E
  • 如何根据 value_counts() 条件替换 pandas dataframe 列中的值? [复制]

    这个问题在这里已经有答案了 我有一个数据框 其中一列本质上是分类的 并且该列中的许多值都是重复的 但是有许多值的计数非常小 即一位数计数 而其他值的计数为 3 或 4 位数字 我想将此分类列中值计数小于 10 的所有值替换为值 其他 下面
  • .NET Remoting 真的已被弃用吗?

    每个人都在说 NET Remoting 如何被 WCF 取代 但我想知道这到底有多准确 我还没有看到任何关于 Remoting 被弃用的官方消息 而且在我看来 在某些情况下 Remoting 比 WCF 更有意义 即使在框架的 4 0 版本
  • 通过google play私人频道部署android应用程序

    您好 我正在尝试在 Google Play 商店的私人频道中上传我的 Android 应用程序 这将是我们组织的第一个应用程序 我们尚未上传任何应用程序 但我们正在尝试在私人频道中上传我们的第一个应用程序 我没有找到如何开始使用 Googl
  • 无效的短期购买代币

    我有带有订阅应用内购买功能的 Android 应用程序 因为我使用订阅从在线服务传递数据 所以我通过 google play API 在服务器端使用购买验证 使用应用程序在购买后向我发送的购买令牌 我的数据库中的大多数购买令牌都是长字母数字
  • 类对象 getter 上的 @ConditionalonExpression

    我想知道是否有一种方法可以通过评估在运行时获取其值的类的对象来在运行时使用 conditionalonexpression 来启用类 例如 ConditionalOnExpression propertyobject getexenable
  • 量角器测试获取表条目的值

    我现在正在编写一些量角器测试 遇到了一些问题 如何从第一行的条目中获取 value1 value2 和 value3 的值 HTML 看起来像这样 table tr td object value1 td td object value2
  • 文本文件解析 - 如何搜索特定字符串并返回整行?

    例如 txt 文件具有以下条目 england is cold country India is poor country england is cold country england is cold country India is p
  • 使用 jquery 幻灯片中的 FadeIn() 图像

    我正在制作图像幻灯片 并且fadeOut 功能适用于每个图像更改 但下一个图像突然出现 我想让它淡入 我似乎无法让它工作 这是没有任何内容的代码fadeIn HTML div img class active src background1
  • 如何在Qt中的QTimeEdit中读取当前时间?

    如何读取用户设置的当前小时和分钟QTimeEdit在 Qt 中 以及如何在QDateTime 读取当前日 月 年 分钟和小时 Use time and date 方法 const int hour timeEdit gt time hour
  • C# directx 精灵起源

    当我的精灵旋转原点固定在窗口的左上角时 与精灵绘制 and 精灵 Draw2D 不管怎样 如果我改变旋转中心 它仍然在左上角 我需要精灵绕其 Z 轴旋转 Edit 我已经尝试过这个 hereMatrix pm Matrix Translat
  • 如何在 iOS 中计算对数? [复制]

    这个问题在这里已经有答案了 我想在 iOS 中计算对数 Objective C 可以做到这一点吗 您可以使用C 函数用于计算对数 import
  • 语音识别 Android 应用程序

    我正在制作一个应用程序 它接受用户的命令并实时写入 我最好的选择是什么 像 sphinx 这样的第三方软件还是应该使用内置的 android 语音识别 其次 我希望它能够实时写入 就像我说话时它就开始写入一样 您应该使用内置的 Androi
  • 函数 simplexml_load_string() 上的 XML_PARSE_HUGE

    常数XML PARSE HUGE可以作为第三个参数传递给simplexml load string 根据php net这个标志 放宽解析器的任何硬编码限制 什么是 解析器的默认硬编码限制 我认为放松也有点含糊 它是否消除或增加了 硬编码限制
  • 按钮中的图像 - j2me

    我正在尝试使用 J2ME 构建一个简单的基于菜单的 GUI 菜单项当前是从 Button 类派生的类的对象 有什么办法我可以 替换按钮中的文本并显示图像 类似图标 使文本和图像并排显示在同一菜单栏上 如果我的问题不清楚 请告诉我 我会编辑它