LWUIT:如何防止按钮在 J2ME 中改变颜色
Posted
技术标签:
【中文标题】LWUIT:如何防止按钮在 J2ME 中改变颜色【英文标题】:LWUIT : How to Prevent Button change its color in J2ME 【发布时间】:2012-12-01 23:56:25 【问题描述】:我使用 LWUIT 创建了一个应用程序。它使用标题栏,像这样
它使用容器。在此标题栏容器下,我创建了可滚动列表。
奇怪的是,如果我滚动这个列表,标题栏中的按钮(菜单按钮和过滤器按钮)的颜色会改变。当我尝试设备中的应用程序时,它就发生了。当我尝试在模拟器中使用它时,它就好了
这是我创建的按钮的代码
b_menu.getUnselectedStyle().setBorder(null);
b_menu.getSelectedStyle().setBorder(null);
b_menu.getPressedStyle().setBorder(null);
b_menu.setIcon(ImageUtil.loadImage("/menu.png"));
b_menu.setRolloverIcon(ImageUtil.loadImage("/menu.png"));
b_menu.setPressedIcon(ImageUtil.loadImage("/menu.png"));
b_menu.setName("menu");
b_menu.getStyle().setBgTransparency(0);
b_menu.getStyle().setBgPainter(new LinearGradientPainter(0xcf266a, 0xcf266a, false));
b_menu.getSelectedStyle().setPadding(5, 5, 5, 5);
b_menu.getSelectedStyle().setMargin(0, 0, 0, 0);
b_menu.getUnselectedStyle().setPadding(5, 5, 5, 5);
b_menu.getSelectedStyle().setMargin(0, 0, 0, 0);
b_menu.getSelectedStyle().setBgColor(0xcf266a, false);
b_menu.getSelectedStyle().setBgTransparency(0);
b_menu.getSelectedStyle().setBgPainter(new LinearGradientPainter(0xcf266a, 0xcf266a, false));
b_menu.getUnselectedStyle().setBgTransparency(0);
b_menu.getUnselectedStyle().setBgPainter(new LinearGradientPainter(0xcf266a, 0xcf266a, false));
b_menu.getPressedStyle().setBgTransparency(0);
b_menu.getPressedStyle().setBgPainter(new LinearGradientPainter(0xcf266a, 0xcf266a, false));
你遇到过并解决过这个问题吗?
问候
吉里
【问题讨论】:
如何隐藏原生标题栏?我只能将应用程序设置为全屏模式,但我也失去了顶部栏。 @jmunoz 试试这个Display.getInstance().setTouchScreenDevice(true); Display.getInstance().setCommandBehavior(BACK);
那不行,我找到了使用Display.getInstance().setObjectTrait(Display.getInstance().getImplementation(), "nokia.ui.canvas.status_zone", Boolean.TRUE);
显示状态栏的方法
但是我还有一个问题....当您将应用程序置于全屏模式时,我想您在所有界面中都丢失了返回本机按钮。你如何构建这个后退按钮?
【参考方案1】:
哦,答案是我还要改变未选中的样式。 代码在这里
b_menu.getUnselectedStyle().setBorder(null);
b_menu.getSelectedStyle().setBorder(null);
b_menu.getPressedStyle().setBorder(null);
b_menu.setIcon(ImageUtil.loadImage("/menu.png"));
b_menu.setRolloverIcon(ImageUtil.loadImage("/menu.png"));
b_menu.setPressedIcon(ImageUtil.loadImage("/menu.png"));
b_menu.setName("menu");
b_menu.getStyle().setBgTransparency(0);
b_menu.getStyle().setBgPainter(new LinearGradientPainter(0xcf266a, 0xcf266a, false));
b_menu.getSelectedStyle().setPadding(5, 5, 5, 5);
b_menu.getSelectedStyle().setMargin(0, 0, 0, 0);
b_menu.getSelectedStyle().setBgTransparency(0);
b_menu.getSelectedStyle().setBgPainter(new LinearGradientPainter(0xcf266a, 0xcf266a, false));
b_menu.getUnselectedStyle().setPadding(5, 5, 5, 5);
b_menu.getUnselectedStyle().setMargin(0, 0, 0, 0);
b_menu.getUnselectedStyle().setBgTransparency(0);
b_menu.getUnselectedStyle().setBgPainter(new LinearGradientPainter(0xcf266a, 0xcf266a, false));
b_menu.getPressedStyle().setBgTransparency(0);
b_menu.getPressedStyle().setBgPainter(new LinearGradientPainter(0xcf266a, 0xcf266a, false));
b_menu.addActionListener(this);
b_menu.repaint();
感谢您查看此问题!
问候
吉里
【讨论】:
以上是关于LWUIT:如何防止按钮在 J2ME 中改变颜色的主要内容,如果未能解决你的问题,请参考以下文章