2012-11-08 3 views
0

Jbutton과 함께 작동하는 JComboBox를 설정하는 방법이 궁금합니다. JcomboBox에서 특정 객체를 선택하면 버튼을 누를 때 계산이 변경됩니다. 이것은 내가 지금까지 가지고있는 것이지만 그것은 작동하지 않는 것 같고 무엇이 잘못되었는지 확실하지 않습니다.jcombobox jbutton과 함께 사용

//JComboBox objectList = new JComboBox(); 
    String[] objectStrings = { "Triangle", "Box", "Done" }; 
    JComboBox objectList = new JComboBox(objectStrings); 
    //objectList.setModel(new DefaultComboBoxModel(new String[]{"Triangle", "Box", "Done"})); 
    objectList.setSelectedIndex(0); 
    final int object = objectList.getSelectedIndex(); 
    objectList.setBounds(180, 7, 86, 20); 
    objectList.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      if (object == 2) { 
       System.exit(0); 
      } 
     } 
    }); 



    frmPrestonPalecekWeek.getContentPane().add(objectList); 

    JButton btnCalculate = new JButton("Calculate!"); 
    btnCalculate.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent arg0) { 
      String box; 
      String done; 
      Box a; 
      Triangle b; 
      b = new Triangle(Double.parseDouble(txtSidea.getText()), Double.parseDouble(txtSideb.getText()), Double.parseDouble(txtSidec.getText())); 
      a = new Box(Double.parseDouble(txtSidea.getText()), Double.parseDouble(txtSideb.getText()), Double.parseDouble(txtSidec.getText())); 
      if (object == 0) { 
      txtOutput.setText("this is the volume " + a.getVolume()); 
      } 
      else if (object == 2) { 
       System.exit(0); 
      } 

     } 

답변

3

버튼의 액션 청취자에서는 오히려 콤보 선택이 변경 될 때 변경하려고하지 않는 한 초기화 (final int object = objectList.getSelectedIndex()) 동안 설정 한 인덱스를 사용하는 것보다, 콤보 상자에서 선택한 항목을 확인해야합니다. 이 변수는 심지어 final으로 표시됩니다.

예를 들어, 당신은 비슷한 할 수 :

btnCalculate.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent arg0) { 
     int selectedIndex = objectList.getSelectedIndex(); 
     if (selectedIndex == 0) { 
      ... 
     } else if selectedIndex == 2) { 
      ...  
     } 
    } 
}