2013-05-31 52 views
0

我在使用兩個組合框來影響一個項目的狀態時遇到了一些麻煩。每個組合框的值都在1到99之間,我試圖改變每個值,合併它們,然後在jlabel上顯示這個值。到目前爲止,我只能看到第一個組合框似乎影響公式。我已經簡化它到以下,並感謝您的任何幫助:)如何通過更改不同的組合框的值來感染jlabel

私人詮釋value1int,value2int;

value1.addItemListener(new ItemListener() 
    { 
     public void itemStateChanged(ItemEvent ex) 
     { 
      if (ex.getStateChange() == ItemEvent.SELECTED) 
      { 
       // assume single selection 
       int value1int = (Integer)ex.getItemSelectable().getSelectedObjects()[0]; 
      } 
     } 
    }); 

    value2.addItemListener(new ItemListener() 
    { 
     public void itemStateChanged(ItemEvent exs) 
     { 
      if (exs.getStateChange() == ItemEvent.SELECTED) 
      { 
       // assume single selection 
       int value2int = (Integer)exs.getItemSelectable().getSelectedObjects()[0]; 
      } 
     } 
    }); 


    overallValue2.setText((Integer.toString(value1int + value2int))); 
    overallValue2.revalidate(); 
+1

你在程序上想。你在一個事件驅動的環境中工作,你需要編碼來響應事件... – MadProgrammer

回答

1

你必須做這樣的事情:

public class GUI extends JFrame ... 

private int labelVal; 

... 


// combobox events - The same code to both comboboxes must works 

public void itemStateChanged(ItemEvent exs) 
{ 
    if (exs.getStateChange() == ItemEvent.SELECTED) 
    { 
     // assume single selection 
     int aux = (Integer)combobox1.getSelectedItem()+(Integer)combobox2.getSelectedItem(); 
     int labelVal= aux; 
    } 
} 

他們刷新屏幕

+0

這實際上設法工作,但是,我不得不爲每個組合框複製每個項目監聽器。它的工作非常感謝! – Iron

相關問題