我想实现一个当JCheckBox被选中时弹出颜色选择对话框的程序(默认初始化时不选中)
但以下代码在点击选中时可以弹出对话框,但是选好颜色后主窗体的那个JCheckBox不显示选中状态,请问哪里有问题?jcbHighlight.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
if(e.getStateChange()==ItemEvent.SELECTED){
colorHighlight=JColorChooser.showDialog(settingFrame, "Choose temp color", Color.RED);
}
else{
colorHighlight=null;
}
}
});
但以下代码在点击选中时可以弹出对话框,但是选好颜色后主窗体的那个JCheckBox不显示选中状态,请问哪里有问题?jcbHighlight.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
if(e.getStateChange()==ItemEvent.SELECTED){
colorHighlight=JColorChooser.showDialog(settingFrame, "Choose temp color", Color.RED);
}
else{
colorHighlight=null;
}
}
});
解决方案 »
- java的commons-net包使用FTP连续上传文件报错--can not create file
- 如何在实例销毁前执行某个方法
- 如何减少代码重写率高的问题。
- 技术难题 求救大家 在线等待 欢迎讨论
- robocode入门讨论贴------------------0.01
- 关于JOptionpane的问题。
- [200分求助!包的编译问题:]
- 如何知道Runtime.getRuntime.exec(...)的执行命令是否成功执行呢?
- GG,我回来了,好久没来,又有新问题!请GG们进来看看哦!还有上次的SWING颜色的框框问题我有新进展!!!
- 关于JAVA程序设计稍微深入时的问题
- “蓝桥杯”决赛题5
- 循环内重复new对象来进行插入数据,怎样比较省内存和快。(高手来,菜鸟勿扰)
if(e.getStateChange()==ItemEvent.SELECTED){
//在这里set下
colorHighlight=JColorChooser.showDialog(settingFrame, "Choose temp color", Color.RED);
}
set一下
谢谢。
首先我觉得Java应该把它设计成点击之后就显示选中,就像不添加Listener时那样。但为什么只是添加了一个Listener后就不会显示选中了呢?
然后我试过setSelected()方法,但这样又会重新触发一次这个Listener
我也试过判断jcbHighlight.isSelected(),但这样也不行,会一直触发Listener
jcbHighlight.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(jcbHighlight.isSelected()){
colorHighlight=JColorChooser.showDialog(settingFrame, "Choose temp color", Color.RED);
}
else{
colorHighlight=null;
}
}
});