JCheckBox 禁用时候的颜色怎么改

逗泥丸的平方 2016-11-15 10:53:09


我设置了foreGround,但是只有文本变了........... 前面的选择框还是灰色
...全文
145 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
逗泥丸的平方 2016-11-15
  • 打赏
  • 举报
回复
翻了代码 看起来那只是一个icon 或者告诉我这个icon在哪里搞也行
逗泥丸的平方 2016-11-15
  • 打赏
  • 举报
回复
看到了一种解决方案是重写绘制对号的方法 , 但是他是手动重写的,如果我这样做就和原来界面风格不太一致了.
 private class CheckBoxIcon implements Icon{
            /**
             * 序列号
             */
            private static final long serialVersionUID = -8237596219671909041L ;

            /**
             * 尺寸
             */
            private final static int csize = 13 ;

            /**
             * 背景颜色
             */
            private Color background ;

            /**
             * 构造方法
             * @param color
             */
            private CheckBoxIcon( Color color ){
                background = color ;
            }

            @Override
            public void paintIcon( Component c , Graphics g , int x , int y ){
                AbstractButton b = ( AbstractButton )c ;
                ButtonModel model = b.getModel() ;

                boolean isSelected = model.isSelected() ;
                boolean isRollover = model.isRollover() ;

                if( isRollover ){
                    g.setColor( Color.GRAY ) ;
                }
                else{
                    g.setColor( Color.BLACK ) ;
                }
                g.drawRect( x , y , csize - 1 , csize - 1 ) ;

                g.setColor( background ) ;
                g.fillRect( x + 1 , y + 1 , csize - 2 , csize - 2 ) ;

                if( isSelected ){
                    drawCheckIn( g , x , y ) ;
                }
            }

            @Override
            public int getIconWidth(){
                return csize ;
            }

            @Override
            public int getIconHeight(){
                return csize ;
            }

            /**
             * 画对钩
             * @param g
             */
            private void drawCheckIn( Graphics g , int x , int y ){
                g.setColor( Color.BLACK ) ;
                g.translate( x , y ) ;
                g.drawLine( csize - 2 , 1 , csize - 2 , 2 ) ;
                g.drawLine( csize - 3 , 2 , csize - 3 , 3 ) ;
                g.drawLine( csize - 4 , 3 , csize - 4 , 4 ) ;
                g.drawLine( csize - 5 , 4 , csize - 5 , 6 ) ;
                g.drawLine( csize - 6 , 5 , csize - 6 , 8 ) ;
                g.drawLine( csize - 7 , 6 , csize - 7 , 10 ) ;
                g.drawLine( csize - 8 , 7 , csize - 8 , 10 ) ;
                g.drawLine( csize - 9 , 6 , csize - 9 , 9 ) ;
                g.drawLine( csize - 10 , 5 , csize - 10 , 8 ) ;
                g.drawLine( csize - 11 , 5 , csize - 11 , 7 ) ;
                g.drawLine( csize - 12 , 6 , csize - 12 , 6 ) ;
                g.translate( -x , -y ) ;
            }
        }

    }

62,614

社区成员

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

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