我正在尝试在LWUIT中创建一个单元转换器,并且我正在使用两个组合框。如何将项目选择固定在组合框中
该应用程序基本上将在一个组合框中选择的单位转换为在其他组合框中选择的单位。
http://www.unit-conversion.info/length.html#data
它的工作原理是这样的在线转换器。
我已经成功,但我面临一个关于组合框的问题。
当我选择一个组合框上的项目,然后选择另一个组合框上的项目时,之前组合框的选择将丢失。
由于我必须多次选择组合框,即使当我想要修复一个单位时也是如此。
我希望我的应用程序能像这个在线单位转换器一样工作,其中一旦进行选择就被固定,直到做出另一个选择。
那么有什么方法可以保留你的选择,直到你还没有手动改变它?
由于我的评分较低,我无法上传任何图片,并且提供的代码没有用,因为它太冗长,大部分工作正常。
我需要帮助,任何信息都会非常有帮助。
Form b = new Form();
String content = {"contents here for combobox 1"};
String content2 = {"contents here for combobox 2"};
TextArea value1 = new TextArea();
value1.setConstraint(TextArea.DECIMAL)
TextArea value2 = new TextArea();
value2.setEditable(false);
final ComboBox V2 = new ComboBox(content2);
V2.setListCellRenderer(new checkBoxRenderer1());
final ComboBox V1 = new ComboBox(content);
V1.setListCellRenderer(new checkBoxRenderer());
V1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
int a = V1.getSelectedIndex();
switch(a){
case 0:
int v2sel = V2.getSelectedIndex();
switch(v2sel){
case 0 :
double d1 ;
value2.setText(value1.getText());
break;
case 1 :
d1 = Double.parseDouble(value1.getText());
d1 = d1 * 0.1;
value2.setText(Double.toString(d1));
break;
case 2 :
d1 = Double.parseDouble(value1.getText());
d1 = d1 * 1.0e-5;
value2.setText(Double.toString(d1));
break;
// multiple case statements
}
//multiple case statements
}
});
b.addComponent(V1);
b.addComponent(value1);
b.addComponent(V2);
b.addComponent(value2);
b.addComponent(Bexit);
b.show();
// End
'那么是否有任何方法可以保留您的选择,直到您尚未手动更改?' - 这是默认行为。每个组合框独立工作。问题出在你的代码上。发布你的[SSCCE](http://sscce.org/)来证明问题。 “提供代码是没有用的,因为它太冗长了” - 应始终提供代码(以SSCCE的形式)。在你的情况下,一个框架与两个组合框。我认为,将少于20-30行的代码来展示所描述的问题。通常当你创建一个SSCCE时,你会发现你真正的问题。 – camickr
抱歉没有提供代码,我很懒。 现在我编辑了我的帖子。 – user2497398
'你可以请指导我制作清晰的listmodels,以便保留复选框状态 - 这是默认行为,除非您专门将相同模型添加到两个组合框中。 “任何类型的信息都会有很大的帮助” - 仍然在等待你的SSCCE证明了这个问题。 – camickr