请教各位怎样使得JCheckBoxMenuItem 当选项勾去掉时(我默认设置的是打勾选上的)怎样响应事件,ItemListener和ActionListener这两个事件该去实现哪个事件接口。我想要做的是当去掉选项时将JSplitPane设置为setDividerLocation(0),而打上勾时就恢复默认的。请教大家这该怎么写? 以下是我的部分代码:missionMenuItem = new JCheckBoxMenuItem("任务管理(M)",true);
missionMenuItem.addActionListener(this);JSplitPane leftsp = new JSplitPane();
leftsp.setContinuousLayout(true);
leftsp.setDividerSize(10);
leftsp.setDividerLocation(165);
leftsp.setOneTouchExpandable(true);
public void actionPerformed(ActionEvent e) {
    if ((e.getSource() == missionMenuItem)    
missionFunc();
}private void missionFunc() {
//....

解决方案 »

  1.   

    missionMenuItem = new JCheckBoxMenuItem("任务管理(M)",true);
    missionMenuItem.addItemListener(this);JSplitPane leftsp = new JSplitPane();
    leftsp.setContinuousLayout(true);
    leftsp.setDividerSize(10);
    leftsp.setDividerLocation(165);
    leftsp.setOneTouchExpandable(true);
    public void itemStateChanged(ItemEvent e) {
        if ((e.getSource() == missionMenuItem)    
    missionFunc();
    }private void missionFunc() {
    //....
    }
      

  2.   

    我按照你说的可以实现了,但是只能响应状态为false时的事件,我想要做的是,默认为true,选项取消掉(为false)时响应事件,当打勾时(true)将设置还原为默认,请教这样该怎么做?public void itemStateChanged(ItemEvent e) {
         if (e.getSource() == missionMenuItem)    
    missionFunc();
    }
    public void missionFunc() {
    leftsp.setDividerLocation(0);
    }
      

  3.   

    public void itemStateChanged(ItemEvent e) {
        if (e.getSource() == missionMenuItem)
        {
            if(....==true)
            {//执行A} 
             else
             {//执行B}   }