如何将项目选择固定在组合框中

时间:2013-06-22 13:35:36

标签: java swing java-me lwuit

我正在尝试在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

1 个答案:

答案 0 :(得分:1)

您是否为两个组合框设置了相同的模型实例?

模型控制选择,所以这显然不起作用。