2016-10-12 11 views
0

저장을 누르면 파일로 출력됩니다. 그들에는 4 개의 체크 박스가 있고 1 개를 선택할 필요가있다. 그들이 하나를 선택할 때 그것은 프로그램이 어느 것을 선택 하는지를 알려주고 이에 따라 다음을 출력합니다.mouseclicked 및 itemlistener를 사용하여 조건이 올바른 경우 파일로 출력하는 방법

현재 어떤 아이디어가 효과가 없습니까?

JButton buttonSave = new JButton("Save"); 
     buttonSave.addMouseListener(new MouseAdapter() { 
      @Override 
      public void mouseClicked(MouseEvent e) { 

       String name = whoSoldTo.getText(); 
       String test = sellPrice.getText(); 
       int soldToPrice = Integer.parseInt(test); 

       checkboxMint.addItemListener(new ItemListener() { 
        @Override 
        public void itemStateChanged(ItemEvent ev) { 
        } 
       }); 

       if(ev.getStateChange() == ItemEvent.SELECTED) { 
        write.soldToFile(name, "mint", soldToPrice); 
        System.out.println("Mint works"); 
       } 

       checkboxTobacco.addItemListener(new ItemListener() { 
        @Override 
        public void itemStateChanged(ItemEvent e) { 
         if(e.getStateChange() == ItemEvent.SELECTED) { 
          write.soldToFile(name, "tobacco", soldToPrice); 
         } 
        } 
       }); 

       checkboxFruit.addItemListener(new ItemListener() { 
        @Override 
        public void itemStateChanged(ItemEvent e) { 
         if(e.getStateChange() == ItemEvent.SELECTED) { 
          write.soldToFile(name, "fruit", soldToPrice); 
         } 
        } 
       }); 

       checkboxCreme.addItemListener(new ItemListener() { 
        @Override 
        public void itemStateChanged(ItemEvent e) { 
         if(e.getStateChange() == ItemEvent.SELECTED) { 
          write.soldToFile(name, "creme", soldToPrice); 
         } 
        } 
       }); 

      } 
     }); 

     buttonSave.setBounds(227, 143, 117, 29); 
     contentPane.add(buttonSave); 

    } 
} 

답변

0

모든 항목 목록 작성자를 자체로 작성합니다. 즉, mouseclicklistener 외부에 작성하십시오. 다른 항목에 대한 전역 부울 변수를 선언합니다 (예 : Bool fruits). false로 설정되고 itemListener에서 이벤트가 발생하면 true로 설정됩니다. onMouseClickListener에서 어떤 부울 변수가 true인지 확인하고 항목과 연관된 작업을 수행합니다.

+0

방금 ​​저장 버튼을 모두 없애고 확인란을 고수하고 있습니다. –