一般的JCheckBox建立之后,选中就打钩,再选勾消失,我想选中的时候是打叉,怎么做呢?????
本来打钩打叉都是一回事,但客户非说要选中后打叉比较好,才接触java,求教各位!!!!!

解决方案 »

  1.   

    你要自己实现一个JCheckBox的UI类,然后将选中的效果改为打叉的
      

  2.   

    可以通过这几个方法解决setIcon(); 平常态
    setPressedIcon(); 按下态
    setRolloverIcon(); 鼠标悬浮态
    setSelectedIcon(); 选中态
    setRolloverSelectedIcon(); 选中时的鼠标悬浮态这个 JCheckBox 前面的那个方框+勾其实是图片
    具体实现一般在对应的L&F的 IconFactory 类中
    比如 MetalIconFactory 类中的 CheckBoxIcon 内部类你可以自己写个类似的 Icon 在不同状态时画上你喜欢的图片,
    或者直接用上面那5个方法换掉就OK了
      

  3.   

    谢谢指点,我想我应该修改setPressedIcon这个函数没错吧。
    但我还是有些困惑,我用的环境是Eclipse,界面应该是swing写的
    我在JCheckBox.class并没有发现您说的这五个函数啊,请问怎么办呢?
      

  4.   

    去他父类找JCheckBox->JToggleButton->AbstractButton
      

  5.   

    非常感谢,找到了。
    public void setPressedIcon(Icon pressedIcon) {
            Icon oldValue = this.pressedIcon;
            this.pressedIcon = pressedIcon;
            firePropertyChange(PRESSED_ICON_CHANGED_PROPERTY, oldValue, pressedIcon);
            if (accessibleContext != null) {
                accessibleContext.firePropertyChange(
                    AccessibleContext.ACCESSIBLE_VISIBLE_DATA_PROPERTY,
                    oldValue, pressedIcon);
            }
            if (pressedIcon != oldValue) {
                if (getModel().isPressed()) {
                    repaint();
                }
            }
        }但这个应该修改哪个地方能够使勾变为叉呢,看不大懂这个函数。
      

  6.   

    真是不好意思,才接触JAVA不到一周,确实问题比较多,但任务又催的紧。
    麻烦各位了,结贴再追加分。
      

  7.   

    http://www.iteye.com/topic/1114898看看这个是否对你有用!!
      

  8.   


    直接调用这个函数就行了,设一个带X的图片上去
    setPressedIcon(带X的图片)
      

  9.   

    选中时打X的话,好像应该是setSelectedIcon(带X的图片)
      

  10.   

    我大概明白您的意思了,就是在使用JCheckBox的时候调用setSelectedIcon,里面的参数为一个打X的图片没错吧。
    但是,setSelectedIcon里面的参数Icon貌似是一个接口啊,带X的图片应该怎么传入这个函数里面去呢?