JCheckBox.setSelected(true)界面没效果,问题定位

糖牙 2010-08-30 09:05:39
(1)JCheckBox事件: JCheckBox.addItemListener(new ItemListener(){生成动态面板});
(2)在界面进行鼠标操作正常显示控件,界面上可以看到JCheckBox勾选,动态生成面板,不勾选时正常移除面板
(3)用代码执行鼠标操作:
问题:
(1)JCheckBox.setSelected(true); 在界面上看不到JCheckBox勾选状态,但是执行了JCheckBox.addItemListener监听事件,生成动态面板A;
此时JCheckBox.isSelected()==true;当再进行鼠标点击JCheckBox时又会生成一个同样的动态面板A;
(2) JCheckBox.requestFocus();JCheckBox.setSelected(true); 在界面上能看到JCheckBox勾选状态,也执行了JCheckBox.addItemListener监听事件,生成动态面板A;
当鼠标点击其他地方时,JCheckBox勾选状态自动消失,似乎JCheckBox.setSelected(true);看到JCheckBox勾选状态是个假象

(3)其他方法也试过了,不起作用
JCheckBox.requestFocus();
JCheckBox.setSelected(true); //设置选中
// JCheckBox.doClick(); //执行 鼠标操作
System.out.println(JCheckBox.isSelected());
// JCheckBox.updateUI();
officePanel.updateUI(); //面板更新
...全文
564 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
糖牙 2010-10-15
  • 打赏
  • 举报
回复
虾米,全给了。。。。总没人鸟!哎!~~~~!~!~~!
糖牙 2010-10-15
  • 打赏
  • 举报
回复
额。。。?、设置复选框的setSelect(true)属性页面没效果呗。。。。

//面板监听事件
用了
cboSS_Name.addItemListener(new ItemListener()
{
@Override
public void itemStateChanged(ItemEvent e)
{
if (e.getStateChange() == ItemEvent.SELECTED)
{
createN7TGParam(tmgchkMap,tmgInfoList, panel_TMGcheckBox, makeTDMPanel);
}
}
}

…………
虾米 2010-08-31
  • 打赏
  • 举报
回复
jf ........................................
虾米 2010-08-31
  • 打赏
  • 举报
回复
你干嘛 ????????????????????
糖牙 2010-08-30
  • 打赏
  • 举报
回复
给过路费。~~!~~!~。。。。。~~!!
songqinging 2010-08-30
  • 打赏
  • 举报
回复
路过,本人还是初学者,来学习的
糖牙 2010-08-30
  • 打赏
  • 举报
回复
(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("是");

}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧