0

保存を押したときにファイルに出力しようとしています。彼らは4つのチェックボックスを持っており、1つを選択する必要があります。彼らが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のフルーツがfalseに設定され、itemlistenerでイベントが発生した場合にはtrueに設定されます。 onMouseClickListenerでどのブール変数が真であるかチェックし、そのアイテムに関連付けられたアクションを実行します

+0

私はちょうど保存ボタンを完全に取り除き、チェックボックスをつけています。 –

関連する問題