当需要改变组件界面样式的时候调用,建议看看mvc。比如我定义JInternalFrame为没有边框和titlepane,我就需要重载一个BasicJInternalFrameUI来实现这个界面,然后通过在程序中合适的地方调用setUI来设置这种情形,也可以通过updateUI(null)来返回默认UI

解决方案 »

  1.   

    那我addListener和removeListener时需要调用它吗?
    SUN给出了四个情况下需要调用installUI(),可是我还是不明白在开发自己的控件时什么时候需要
    重写installUI()和uninstallUI(),什么不需要
    能否说得再详细点,另外Resource文件该怎么用?rs,253,拜谢!
      

  2.   

    就是说你做的组建的显示样式需要改变的时候,比如说editplus的文本部分,我们可以把每个文本框比喻成用JInternalFrame来实现,那当我点最大化按纽的时候,我需要这个JInternalFrame的边框和标题框都消失,而只留下文本的部分,这样用户可以有最大的编辑面积,这个时候我就可以通过点急一个按纽而在他的ActionListener中来进行installUI(),其中它的参数就是你自己重载的一个自定义的BasicJInternalFrameUI类,这个BasicJInternalFrameUI类就是取消JInternalFrame的边框和titlePane的显示。当然,反过来,如果你还需要另外一个按纽来恢复这个JInternalFrame的原形,就是有边框和有titlePane的,那就需要UninstallUi或者updateUI了
      

  3.   

    我的代码是这样的:
    public void installUI(){
      ListenerList.add(ActionListener)
    }public void uninstallUI(){
      ListenerList.remove(ActionListener)
    }
      

  4.   

    晕,呵呵,你把installUI覆盖了?哈哈,我们的installUI没有了,呵呵,你为什么要在里面加舰艇器呢?建议你在看看UI部分。
    言多必失,我赶快闪,哈哈