gpt4 book ai didi

java-me - 在 LWUIT 中设置按钮状态

转载 作者:行者123 更新时间:2023-12-04 06:14:59 24 4
gpt4 key购买 nike

我正在编写我的第一个 LWUIT 和 Java ME 应用程序,并试图让按钮状态起作用。我知道我可以在资源编辑器中做到这一点,但我真的很想知道为什么我的代码不起作用。我下面的代码表现得似乎不正常。如果我选择第一个按钮,它工作正常。当我选择第二个按钮时,该按钮具有选定状态的前景,但具有未选择状态的背景。第三个按钮也是如此。但是,当我回到第一个按钮时,第一个按钮和第三个按钮都具有选中状态的背景,第一个按钮具有选中状态的前景,第三个按钮具有未选中状态的前景。
我试过阅读教程和在线论坛,但似乎其中大部分已经过时了。甚至官方 LWUIT 页面上的教程也包含一些不推荐使用的命令,以至于 Netbeans 将它们显示为未解决而不是不推荐使用。我确定这是一个简单的错误,但我无法从这段代码中看出其他按钮应该如何受到选择或未选择的影响,或者为什么每次按钮状态更改时选择和未选择的样式都会更改。

    Style buttonUp = new Style();
buttonUp.setAlignment(Component.CENTER);
buttonUp.setBgColor(0x0082ff);
buttonUp.setFgColor(0xffffff);
buttonUp.setMargin(5,5,0,0);

Style buttonDown = new Style();
buttonDown.setAlignment(Component.CENTER);
buttonDown.setBgColor(0xd7d7ee);
buttonDown.setFgColor(0x000000);
buttonDown.setMargin(5,5,0,0);

Container buttons = new Container(new BoxLayout(BoxLayout.Y_AXIS));
Button firstButton = new Button("first");
firstButton.setUnselectedStyle(buttonUp);
firstButton.setSelectedStyle(buttonDown);
firstButton.setPressedStyle(buttonDown);

Button secondButton = new Button("second");
secondButton.setUnselectedStyle(buttonUp);
secondButton.setSelectedStyle(buttonDown);
secondButton.setPressedStyle(buttonDown);

Button thirdButton = new Button("third");
thirdButton.setUnselectedStyle(buttonUp);
thirdButton.setSelectedStyle(buttonDown);
thirdButton.setPressedStyle(buttonDown);

这应该是所有相关代码,因为它是处理按钮的唯一部分,除了将按钮添加到容器和容器到表单的 addComponent 调用。

最佳答案

您正在重用样式对象实例,这是不合法的,每个组件状态都必须有一个单一的实例。在 LWUIT 中通过以下方式执行此操作更为常见:

button.getUnselectedStyle().setFgColor(...);

或者,您可以在方法中实现逻辑:
updateButtonTheme(Style);

并将其调用为:
updateButtonTheme(button.getUnselectedStyle());

关于java-me - 在 LWUIT 中设置按钮状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7375742/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com