本帖最后由 QQ453100229 于 2010-08-30 09:06:29 编辑

解决方案 »

  1.   

    (4)代码流程:
        (1)//往界面里面添加map,map存控件
        @SuppressWarnings("unchecked")
        private Map<String,Map> controlMap=new HashMap<String,Map>();
      public void createPanel()
       {
         Map<String,JComponent> basicMap=new HashMap<String, JComponent>();
            basicMap.put("cboSS_Name", cboSS_Name);//下拉列表
           bindN7TGByssName(tmgchkMap,tmgBasicMap,cboSS_Name, panel_TMGcheckBox,makeTDMPanel);  //给下拉列表添加事件监听
                   ……
                    ……
             controlMap.put("basicMap", basicMap);
            controlMap.put("tmgchkMap", tmgchkMap);
            controlMap.put("tmgBasicMap", tmgBasicMap);   }
        (2)  //面板监听事件
    public void bindN7TGByssName(
                final Map<String, JCheckBox> tmgchkMap,
                final Map<String, JComponent> tmgBasicMap,
                final JComboBox cboSS_Name, 
                final JPanel panel_TMGcheckBox,
                final JPanel makeTDMPanel)
        {
            cboSS_Name.addItemListener(new ItemListener()
            {
                @Override
                public void itemStateChanged(ItemEvent e)
                {
                 createN7TGParam(tmgchkMap,tmgInfoList, panel_TMGcheckBox, makeTDMPanel);
                }
            }
        }(3)   
    //创建JCheckBox
       public void createN7TGParam(
                Map<String, JCheckBox> tmgchkMap,
                ArrayList<TmgInfo> tmgInfoList, 
                JPanel panel_TMGcheckBox, JPanel makeTDMPanel)
    {
            for (int m = 0; m < tmgInfoList.size(); m++)
            {
                TmgInfo tmgInfo = tmgInfoList.get(t);
                //生成复选框
                JCheckBox tmgCheckbox = new JCheckBox();
                tmgCheckbox.setName(tmgInfo.mgwName+"_tmgchk");
                tmgCheckbox
                        .setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
                tmgCheckbox.setText(tmgInfo.mgwName);            panel_TMGcheckBox.add(tmgCheckbox);            //将checkBox存进map
                tmgchkMap.put(tmgCheckbox.getName(), tmgCheckbox);
            }
    }(4)
          /**
         * 
         * @param sheet      Excel工作表
         * @param controlMap  面板所有控件Map
         * @param vecException Excel异常数组
         * @param officePanel  整个页签面板
         */
        @SuppressWarnings("unchecked")
        public void readTmgModule(HSSFSheet sheet,
                Map controlMap, 
                Vector<String[]> vecException,JPanel officePanel)
        {
            Map<String,JCheckBox> tmgchkMap=(Map<String, JCheckBox>) controlMap.get("tmgchkMap");
            JCheckBox tmgchk=tmgchkMap.get("XAMGA2_tmgchk");
              
    //        tmgchk.requestFocus();
            tmgchk.setSelected(true);
            tmgchk.doClick();
            System.out.println(tmgchk.isSelected());
    //        tmgchk.updateUI();
            
            Map<String,JComponent> tmgBasicMap=(Map<String, JComponent>) controlMap.get("tmgBasicMap");
    //        JComboBox isTroughComboBox=(JComboBox) tmgBasicMap.get("XAMGA1_scence");
    //        isTroughComboBox.setSelectedItem("是");
            
        }
      

  2.   

    额?、设置复选框的setSelect(true)属性页面没效果呗。//面板监听事件
    用了 
    cboSS_Name.addItemListener(new ItemListener()
      {
        @Override
        public void itemStateChanged(ItemEvent e)
        {
         if (e.getStateChange() == ItemEvent.SELECTED)
         {
           createN7TGParam(tmgchkMap,tmgInfoList, panel_TMGcheckBox, makeTDMPanel);
          }
        }
      }…………