CS结构的程序,加载皮肤包之后,程序工具栏上按钮的边框即使设置了setBorderPainted(false),仍显示边框,但是对按钮添加鼠标响应,鼠标移上去之后边框消失,则可以。去掉皮肤包之后恢复正常,为什么呢??

解决方案 »

  1.   

    你用的是什么皮肤包啊?可能这种 L&F 在绘制按钮平常态时,没有去判断 BorderPainted 是否为 true
    所以不管你 BorderPainted 怎么设,都会绘制边框而它在 rollover (即鼠标悬浮在上面时)态的绘制时,是判断了 BorderPainted 的
    所以 setBorderPainted 可以生效你可以看一下这种 L&F 的 ButtonUI 是怎么写的
      

  2.   

    另外,去边框还有个办法
    设一个空边框就行了
    BorderFactory.createEmptyBorder(int top, int left, int bottom, int right);
    上下左右各空多少像素都能设
      

  3.   

    不行的,我现在直接用JPanel来代替toorbar了。就没有边框了。