2013-06-22 5 views
0

LWUIT에서 단위 변환기를 만들려고하고 있으며 두 개의 콤보 상자로 작업하고 있습니다.항목 선택을 콤보 박스에서 고정 된 상태로 유지하는 방법

기본적으로 응용 프로그램은 하나의 콤보 상자에서 선택된 단위를 다른 콤보 상자에서 선택된 단위로 변환합니다.

http://www.unit-conversion.info/length.html#data

그것은이 온라인 계산기처럼 작동합니다.

나는 성공적으로 만들었지 만, 나는 comboboxes에 관한 문제에 직면하고있다.

콤보 상자에서 항목을 선택한 다음 다른 콤보 상자에서 항목을 선택하면 이전 콤보 상자 선택이 손실됩니다.

나는 하나의 장치를 고치려 고 할 때조차도 여러 번 콤보 상자를 여러 번 선택해야하기 때문에.

내 선택 응용 프로그램이 일단 선택 될 때까지 온라인 장치 변환기처럼 작동하도록 응용 프로그램을 만들고 싶습니다.

수동으로 변경하지 않을 때까지 선택을 유지하는 방법이 있습니까?

낮은 등급으로 인해 이미지를 업로드 할 수 없으며 코드가 너무 길어서 대부분의 경우 잘 작동하므로 사용하지 않을 것입니다.

제발 도움이 필요합니다. 어떤 정보라도 도움이 될 것입니다.

  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

'수동으로 변경하지 않을 때까지 선택 사항을 유지하는 방법이 있습니까? '- 이것이 기본 동작입니다. 각각의 comboBox는 서로 독립적으로 작동합니다. 문제는 코드에 있습니다. 문제를 보여주는 [SSCCE] (http://sscce.org/)를 게시하십시오. '코드를 제공하는 것은 너무 길기 때문에 쓸모 없게 될 것입니다. '- 코드는 항상 제공되어야합니다 (SSCCE의 형태로). 두 개의 콤보 상자가있는 프레임을 사용하십시오. 나는 위와 같은 문제를 설명하기 위해 20-30 줄이 안된다고 생각한다. 일반적으로 SSCCE를 만들면 실제 문제를 발견하게됩니다. – camickr

+0

코드를 제공하지 않아서 죄송합니다. 저는 게으르다 고합니다. 이제 내 게시물을 편집했습니다. – user2497398

+0

'체크 상자 상태가 보존되도록 saperate listmodels을 만들도록 안내해 주시겠습니까? - 특히 두 모델을 모두 콤보 상자에 추가하지 않는 한 이것이 기본 동작입니다. '모든 종류의 정보가 큰 도움이 될 것입니다. '- 여전히 문제를 보여주는 SSCCE를 기다리고 있습니다. – camickr

답변

1

동일한 모델 인스턴스를 두 개의 콤보 상자에 모두 설정 했습니까?

모델도 선택을 제어하므로 분명히 작동하지 않습니다.

+0

두 콤보 상자 모두에서 두 개의 똑똑한 문자열을 전달했습니다 ..... 두 상자의 기본 목록 모델을 사용하고 있습니다 ... 작동하지 않습니다. 지금 코드 게시 – user2497398

+0

왜 체크 상자 렌더러를 사용하고 있습니까? 콤보 상자에는 선택한 항목이 하나만 있습니다 ... 확인란 상태가 유지되지 않는 것을 말하고 있습니까? 그것은 모델에 저장되어야하고 문자열을 사용하기 때문에 그렇지 않을 것입니다. –

+0

예 .... 텍스트 필드 나 다른 콤보 박스를 클릭하자마자 체크 박스 상태가 유지되지 않습니다 ... 체크 박스 렌더러는 콤보 상자의 체크 상자를 사용합니다 .... 제게 만드시기 바랍니다. saveate listmodels 체크 박스 상태가 유지되도록 ..... 각하, 정보의 모든 종류의 도움이 될 것입니다 – user2497398

관련 문제