2011-05-28 62 views
1

有CheckBoxMenuItems和ButtonGroup。當我設置當前CheckBoxMenuItem的偵聽器時,檢查條件並在此偵聽器中產生錯誤。我有活動的另一個CheckBoxMenuItem,這對我沒有必要,即使我會寫「返回」。 問題是該方法不能拋出異常,並且類是匿名的。 下面是代碼:CheckBoxMenuItem和ButtonGroup

mUserMode.addActionListener(new ActionListener() { 

      @Override 
      public void actionPerformed(ActionEvent e) { 

       if(currentCard == 0) { 
        return; 
       } 

       boolean IsEmptyFields = true, isCheckedAnswers = false; 

       // check if all fields is fill in ... 
       endOfCycle: for(Component component: panelForAddingQuesions.getComponents()) { 
        if(component instanceof JTextField) { 
         JTextField question = (JTextField)component; 
         if(question.getText().length() == 0) { 
          IsEmptyFields = false; 
          break endOfCycle; 
         } 

        } 
       } 

       // and if there is one correct answer in every question 
       // check if all fields is fill in ... 
       for(Entry<JTextField, ArrayList<JCheckBox>> entrySets: equivalenceOfQuestionFiledsAndItsAnswers.entrySet()) { 
        isCheckedAnswers = false; 
        for(JCheckBox checkbox: entrySets.getValue()) { 
         if(checkbox.isSelected()) { 
          isCheckedAnswers = true; 
         } 
        } 

       } 

       if(IsEmptyFields) { 
        JOptionPane.showMessageDialog(MainActivity.this, 
          "Error", "Error", 
          JOptionPane.ERROR_MESSAGE); 
       } 
       else if(isCheckedAnswers) { 
        JOptionPane.showMessageDialog(MainActivity.this, 
          "Error","Error", 
          JOptionPane.ERROR_MESSAGE); 
       } 
       else { 
        cardLayout.last(cardPanel); 
        currentCard = 0; 
       } 

// It doesn't help 
       //MainActivity.this.mAdminMode.setEnabled(true); 
      } 
     }); 

有一個在匿名類中的方法(аctionPerformed)。我想要一個條件來取消切換元素的ChechBoxItem,即停止這個操作。但是,無論如何,方法PctionPerformed完成後,將會自動切換複選框,因爲它將被通知View。我需要在方法actionPerformed中直接阻止它

+2

你不需要'setSelected(true)'? – MByD 2011-05-28 15:40:16

+0

是的,沒錯。謝謝。 – user565447 2011-05-28 17:42:41

+0

沒問題。請編輯標題並添加[解決]。 – MByD 2011-05-28 17:45:50

回答

1

您應該撥打MainActivity.this.mAdminMode.setSelected(true);而不是setEnabled(true)

相關問題